【发布时间】:2014-09-23 18:58:59
【问题描述】:
我有一个上传文件的指令。在我看来,我将其称为“UploadRecords.html”。我在“UploadRecords.html”中有一个名为“Upload”的按钮。单击此按钮时,我想调用在我的指令中的链接函数内定义的“UploadAll”方法。有什么方法可以做到这一点。
基本上我想在单击根范围元素时调用指令函数。
注意:我在指令中使用了隔离作用域
angular.module('fileUpload', [])
.directive(
"fileUpload",
function () {
return ({
restrict: 'E',
scope: {
onSuccess: '&',
onError: '&',
},
templateUrl: 'Templates/FileUploadTemplate.html',
link: function (scope, element, attrs) {
scope.files = [];
scope.addFile = function (element, documentType) {
if (element.files.length > 0) {
$.each(element.files, function (index, file) {
scope.files.push(file);
});
}
scope.$apply();
}
scope.uploadAll = function () {
//This is where I upload the files to the web api using a FormData post
}
}
});
}
);
<file-upload on-success="onFileUloadAllSuccess()" on-error="onFileUloadAllError()"></file-upload>
<button type="button" class="btn btn-default">Upload All</button>
谢谢, 山姆。
【问题讨论】:
-
我很困惑。点击是发生在父指令还是子指令上?响应是在另一个未点击的指令上?
-
对不起,我对使用父母这个词感到困惑。我所说的 parent 是指调用指令的视图。
-
你能提供一下你的结构的标记吗?很难理解发生了什么、点击了什么以及需要做什么。
-
我已经更新了这个。好的。我也会添加一些代码。
-
用你当前的实现,没有办法。阅读我的答案。告诉我您喜欢哪个选项,我可以对此进行扩展。
标签: angularjs angularjs-directive angularjs-scope