我有一个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);
});
}
}
}
其中responseinsuccess事件处理程序是上传的文件 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文件上传器,所以我不能在指令中添加特定的控制器名称。
指令和控制器应该如何相互通信来实现这一点?