我有这样的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