我在这样的前端使用ng-if:
div class="flex-row flex-space-around image-preview-panel" ng-if="files"
/* Some Code */
div
由于调用了这个函数,$ scope在函数调用时没有更新,因此没有按预期工作:
angular.module("mainController", [])
.controller("mainCtrl", function($scope, $state) {
var vm = this;
$scope.files = [];
vm.showThumbnails = function() {
for(var i=0;i<event.target.files.length;i++) {
(function(i, file) {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(e) {
$scope.$apply(function() {
$scope.files[$scope.files.length] = file;
})
}
})(i, event.target.files[i]);
}
}
})
有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
我认为这里的问题是$scope.files
被初始化为一个数组,所以ng-if="files"
总是为真(在javascript中,一个空数组是真的)。条件应该是ng-if="files.length > 0"