0
我有我的自定义指令,在父HTML按钮点击自定义指令的控制器方法?角JS
<uploading-multiple-files controlmodel="serviceProfile.serviceProfileAttachments"
upload-all-action="uploadAll" delete-action="deleteImage"
attachment-type-id="scopeTypeId" url="scopeUrl" enable-upload="enableUpload">
</uploading-multiple-files>
上传文件,这样在父控制器deleteAction代码
$scope.deleteImage = function (attachment) {
alert(attachment.id);
}
现在我uploadAllAction工作我想要实现deleteAction在这里类似的方法是它的实现
function uploadingMultipleFiles(FileUploader, $rootScope, $http, $filter, $window, browser) {
return {
replace: false,
scope: {
'attachmentTypeId': '=?',
'controlmodel': '=',
'url': '=',
'maxsize': '=?',
'uploadAllAction': '=?',
'deleteAction': '=?',
"counter": '=?',
"enableUpload": '=?',
"isRequired": '=?'
},
templateUrl: '/app/views/Controls/UploadingMultipleFilesDirective/UploadingMultipleFilesDirectiveTemplate.html',
link: link
};
现在我想初始化我的方法
<div class="col-md-6" ng-repeat="item in controlmodelFiltered">
<div class="col-md-12">
<button class="info" ng-click="delete(item)">x</button>
</div>
</div>
所以用来初始化deleteAction
scope.delete = function (attachment) {
debugger;
scope.deleteAction(attachment); //error delete action is not defined
}
当我点击删除按钮指令JS初始化附件deleteAction,它应该调用控制器的方法,然后在指令 定义指令ng-click="delete(item)"
,但我得到的错误
TypeError: scope.deleteAction is not a function
发布'deleteAction'方法 –
一般情况下,避免在组件中使用双向的“=”绑定。而是使用单向''<''绑定输入并使用表达式''&''绑定输出。这将使转换到Angular 2+更容易。有关更多信息,请参阅[AngularJS开发人员指南 - 基于组件的应用程序架构](https://docs.angularjs.org/guide/component#component-based-application-architecture)。 – georgeawg