Javascript 如何从文件列表拼接选定元素
使用javascript中的fileReader预览选定文件 如果我从预览图像中删除。它必须从选定的文件中删除Javascript 如何从文件列表拼接选定元素,javascript,angularjs,file-upload,Javascript,Angularjs,File Upload,使用javascript中的fileReader预览选定文件 如果我从预览图像中删除。它必须从选定的文件中删除 您可以使用原生JS数组#forEach函数,因为它允许您访问数组中对象的索引 我使用id假设您实际将id传递给函数,以标识需要从数组中删除的对象。看看上面的代码,name看起来更理想,当然,如果这是对象中唯一的属性的话 $scope.file.forEach(function(file, index){ if (file.id === id){ // Where id is
您可以使用原生JS数组#forEach函数,因为它允许您访问数组中对象的索引 我使用
id
假设您实际将id
传递给函数,以标识需要从数组中删除的对象。看看上面的代码,name
看起来更理想,当然,如果这是对象中唯一的属性的话
$scope.file.forEach(function(file, index){
if (file.id === id){ // Where id is your identifier, could be file.name === name.
this.splice(index, 1);
}
});
您不能拼接一个。它是只读的!它只有长度
和项
,但没有像拼接”、“拆分
等阵列逻辑。因此,您必须在阵列中从它复制一个副本:
// **A**
$scope.fileArray = [];
angular.forEach($scope.file, function(file) {
$scope.fileArray.push(file)
});
然后,您可以使用以下方法从该阵列拼接:
$scope.deleteImage = function(index) {
$scope.fileArray.splice(index, 1);
})
当您提到“预览”时,我猜您正在显示所选图像的缩略图。您还必须更改任何显示逻辑,才能使用文件数组
而不是当前的文件
。因此,当用户删除一个元素时,它会自动更新
<div ng-repeat="image in fileArray"... >
然后,您应该能够查看分配给它的文件阵列:
$scope.$watch('fileArray', function() {
// Code from **A**
....
});
我们能看到控制器和html代码吗?您使用什么唯一的标识符来标识要删除的对象?下面的答案是否正确?
<div ng-repeat="image in fileArray"... >
<input type="file" name="files" file-model="filesArray" multiple accept="image"/>
$scope.$watch('fileArray', function() {
// Code from **A**
....
});