如何从Angularjs中的指令更新控制器中的变量(ControllerAs语法)?

如何从Angularjs中的指令更新控制器中的变量(ControllerAs语法)?,angularjs,angularjs-directive,angularjs-controlleras,Angularjs,Angularjs Directive,Angularjs Controlleras,我有一个dropzone指令: function dropzone() { return { restrict: 'C', link: function(scope, element, attrs) { var config = { url: 'http://192.168.1.114:8080/api/files', maxFilesize: 100,

我有一个
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);
            });
        }
    }
}
其中
success
事件处理程序中的
响应
是上载的文件id

我想在我的
uploadFileFormCtrl
中保留所有上传文件的ID列表:

function uploadFileFormCtrl() {
    var _this = this;

    _this.fileIds = [];
};
这将适用于特定的控制器,即作为uploadFile的uploadFileFormCtrl

                'success': function (file, response) {
                    scope.uploadFile.fileIds.push(Number(response));
                    scope.$apply();
                }
但是,我有多个不同的
控制器(例如:
uploadFile
uploadImage
,等等),它们具有
dropzone
文件上传器,因此我无法在指令中添加特定的控制器名称


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

您需要一个独立的指令作用域,以便在一个页面上可以有多个,然后您需要将参数从控制器传递到指令。@Claies这就是您的意思:
作用域:{formCtrl:'=}
scope.formCtrl.fileid.push(数字(响应))
并在HTML中添加
form ctrl=“uploadFile”
?该指令需要一个独立的作用域,以便在一个页面上可以有多个,然后需要将参数从控制器传递到该指令。@Claies这就是您的意思:
作用域:{formCtrl:'='}
作用域.formCtrl.fileIds.push(数字(响应));并在HTML中添加
表单ctrl=“uploadFile”