Ich habe ein Array, wo ich Bilder hinzufügen, ich sehe die Bilder in Miniaturansicht unten angezeigt, wenn ich ein Bild hinzufügen, möchte ich eine Möglichkeit, ein ausgewähltes Bild aus dem Array zu entfernen.Bilder aus Array entfernen
Ich habe eine Funktion namens Bild entfernen, wo ich versuchte, etwas zum Laufen zu bringen, aber ich brauche eine beliebiges Bild im Array auszuwählen und zu entfernen (wie ein X neben dem das Bild)
HTML
<img style="height: 100px; width: 100px" ng-src="{{preview}}" alt="preview image">
<label for="file">Select File</label>
<input ng-model="file" type='file' ng-model-instant name='file' id='fileinput' accept='image/*' onchange='angular.element(this).scope().uploadImage(this)' /> {{uploadError}}
<button ng-click="addImage()">Add image</button>
<div ng-repeat="slot in slots">
<img ng-click="addImage()" style="height: 100px; width: 100px" ng-src="{{slot.base_image}}" alt="preview image">
</div>
JavaScript
$scope.preview = 'img/download.png';
$scope.slots = [];
$scope.maxSlots = 5; // this dynamic
$scope.uploadImage = function() {
// console.log('we are here');
input = document.getElementById('fileinput');
file = input.files[0];
size = file.size;
if (size < 650000) {
var fr = new FileReader;
fr.onload = function (e) {
var img = new Image;
img.onload = function() {
var width = img.width;
var height = img.height;
if (width == 1920 && height == 1080) {
// console.log(e.target.result);
$scope.preview = e.target.result;
$scope.perfect = "you added a image";
// window.alert("perfect");
$scope.$apply();
} else {
$scope.notPerfect = "incorrect definitions";
// console.log(width, height);
$scope.$apply();
}
};
img.src = fr.result;
};
fr.readAsDataURL(file);
} else {
// window.alert("to big");
$scope.notPerfect = "to big";
// console.log('file size to big')
}
};
$scope.addImage = function() {
if ($scope.slots.length < $scope.maxSlots) {
$scope.slots.push({
"slot_id": $scope.slots.length + 1,
"base_image": $scope.preview,
"path_image": ""
});
} else {
window.alert("you have to delete a slot to generate a new one");
// console.log('you have to delete a slot to generate a new one')
}
};
$scope.removeImage = function() {
if ($scope.slots.length < $scope.maxSlots) {
$scope.slots.push({
"slot_id": $scope.slots.length - 1,
"base_image": $scope.preview,
"path_image": ""
});
} else {
window.alert("you have to delete a slot to generate a new one");
// console.log('you have to delete a slot to generate a new one')
}
};
'', '$ scope.removeImage = function (e) {$ scope.slots. Spleiß ($ scope.slots.indexOf (s), 1); }; '. So ähnlich. Sie sollten die Referenz des zu entfernenden Bildes weitergeben, damit Sie es in Ihrer Sammlung leicht erkennen können. Überprüfen Array Splice: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice –
briosheje
@briosheje danke, Ill dies ausprobieren – Beep
Works perfect Danke bro! – Beep