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