如果未设置,则angular指令排除属性

时间:2015-07-16 19:12:33

标签: angularjs angularjs-directive

我正在尝试为按钮创建指令 - 有时用户需要ng-click,有时候需要ui-sref

<md-button ng-click="controller.ngClick" ui-sref="controller.uiSref">
显然,其中只有一个可以同时设置 - 但我怎样才能“隐藏”不需要的那个呢?

如果我提供ng-click,那么我需要html看起来像

<md-button ng-click="controller.ngClick">

我提供ui-sref,看起来应该是

<md-button ui-sref="controller.uiSref">

这是否可以使用角度/指令?或者我应该创建2个指令,每个类型一个?

1 个答案:

答案 0 :(得分:1)

我认为最简单的解决方案 - 使用额外的&#34; flag&#34;:

<md-button ng-click="controller.clickable ? controller.ngClick() : '';" ui-sref="!controller.clickable ? controller.uiSref : '';">

或使用 ng-if

<md-button ng-if="controller.clickable" ng-click="controller.ngClick()">
<md-button ng-if="!controller.clickable" ui-sref="controller.uiSref">

其中 controller.clickable - 标记以在click和href之间切换。