我有一个dropzone
指令:
function dropzone() {
return {
restrict: 'C',
link: function(scope, element, attrs) {
var config = {
url: 'http://192.168.1.114:8080/api/files',
maxFilesize: 100,
paramName: "file",
maxThumbnailFilesize: 10,
parallelUploads: 1,
autoProcessQueue: true
};
var eventHandlers = {
'success': function (file, response) {
}
};
dropzone = new Dropzone(element[0], config);
angular.forEach(eventHandlers, function(handler, event) {
dropzone.on(event, handler);
});
}
}
}
其中response
insuccess
事件处理程序是上传的文件 ID。
我想在我的uploadFileFormCtrl
:
function uploadFileFormCtrl() {
var _this = this;
_this.fileIds = [];
};
这将适用于特定的控制器,即uploadFileFormCtrl as uploadFile
'success': function (file, response) {
scope.uploadFile.fileIds.push(Number(response));
scope.$apply();
}
但是我有多个不同controllers
的(例如:uploadFile
、uploadImage
等)具有dropzone
文件上传器,所以我不能在指令中添加特定的控制器名称。
指令和控制器应该如何相互通信来实现这一点?