1

我有一个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的(例如:uploadFileuploadImage等)具有dropzone文件上传器,所以我不能在指令中添加特定的控制器名称。

指令和控制器应该如何相互通信来实现这一点?

4

0 回答 0