我构建了一个简单的 AngularJS 指令来在元素上实现 Dropzone.js。我想在指令之外使用 ng-repeat 显示上传的文件,但我无法使其工作,因为元素的“addfile”回调似乎正在创建数组的副本(scope.files)。回调可以读取数组(或数组的副本),但是当我在其上推送新元素时不会影响 ng-repeat。我怎样才能使它工作?
.directive('dropzone', function() {
return {
restrict: 'EA',
link: function(scope, el, attrs) {
el.dropzone({
url: attrs.url,
maxFilesize: attrs.maxsize,
init: function() {
scope.files.push({file: 'added'}); // here works
this.on('success', function(file, json) {
});
this.on('addedfile', function(file) {
scope.files.push({file: 'added'}); // here doesn't work
});
}
})
}
}
});