我有這樣的HTML這是我的代碼標準和許多屏幕上使用:如何傳遞給AngularJS指令一些將被該指令使用的代碼?
<button id="deleteButton"
ng-disabled="home.rowSelected === null ||
home.view == 'preview'"
ng-click="ctrl.changeview(home.grid.view[home.rowselected], 'delete')">Delete</button>
爲了簡化事情,我已經轉換這一個指令:
app.directive('adminDeleteButton', ['stateService', function (stateService) {
return {
restrict: 'AE',
template: "<button id='newButton'\
ng-disabled='home.rowSelected === null ||\
home.view == \"preview\"' ng-click='ctrl.changeView(home.grid.view[home.rowselected],\"delete\")' >Delete</button>",
link: function (scope, element, attrs) {
// not used now but maybe later
scope.stateService = stateService;
}
};
}]);
然而一些這方面的用途指令需要一個額外的檢查NG-禁用:
<button id="deleteButton"
ng-disabled="home.rowSelected === null ||
home.view == 'preview' ||
home.grid.view[home.rowSelected].tests.length > 0"
ng-click="ctrl.changeview(home.grid.view[home.rowselected], 'delete')">Delete</button>
<button id="deleteButton"
ng-disabled="home.rowSelected === null ||
home.view == 'preview' ||
home.grid.view[home.rowSelected].tests.length > 0 ||
home.grid.view[home.rowSelected].objectives.length > 0"
ng-click="ctrl.changeview(home.grid.view[home.rowselected], 'delete')">Delete</button>
有沒有人對我怎麼能讓我的指令,多一點靈活,任何想法我可以通過進一步的檢查,可能需要?
什麼你的建議聽起來很有趣,我認爲這將解決我的問題,但我很抱歉。我不明白我如何將它應用於我的例子。你能告訴我一個會使用我的特定代碼的例子嗎?當我想到附加一個函數時,我假設你是指控制器中的一個函數,但是你的例子不使用控制器函數。 – Alan2 2014-08-28 15:27:14
@Alan我更新了我的答案。 – mb21 2014-08-28 15:34:20