禁用ng-单击所有类型元素的某些应用条件

Rus*_*oni 26 angularjs angularjs-directive angularjs-scope angularjs-ng-click

在我的应用程序中,我使用ng-click指令绑定了几个元素,如下所示

<a ng-click="DoSomething()"/>
<button ng-click="DoSomethingElse()">xyz</button>
<span ng-click="DoSomething()"></span>
Run Code Online (Sandbox Code Playgroud)

现在我在某些情况下的应用程序中我希望发生ng-click的默认行为,但在某些情况下我想完全禁用要调用的回调函数(DoSomething(),DoSomethingElse()..).

为了检查这种情况,我有一个范围变量说 $scope.IsClickEnable = true/false;

那么我怎样才能完成这种行为呢?

我可以使用ng-disable来禁用元素,但它只适用于按钮类型的元素,因此在我的场景中不起作用

我还可以检查每个函数调用中的条件,但我想通过覆盖ng-click行为或其他东西来实现这一目标.

Ani*_*ket 69

这样做:

<button ng-click="!IsClickEnable||DoSomethingElse()">xyz</button>
Run Code Online (Sandbox Code Playgroud)

当IsClickEnable的值为true时,将在按钮单击时调用该函数,然后将调用函数'DoSomethingElse()',否则将不会调用它

  • 为了便于阅读,我认为像这样写<button ng-click ="IsClickEnable && DoSomethingElse()"> xyz </ button>更容易 (8认同)
  • 还有一些其他语法,如<button ng-click ="IsClickEnable?DoSomethingElse():null"> xyz </ button>.IsClickEnable为true,然后将调用该函数 (5认同)