如何从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”
?