如何使ng-click事件有条件?

2022-08-30 05:05:21

我在ng-repeat里面有这个代码:

<a href="#" class="disabled" ng-click="doSomething(object)">Do something</a>

如何使按钮在class=“disabled”时被禁用的条件?

或者有没有办法在Javascript中做到这一点,这样看起来就像这样:

$('.do-something-button').click(function(){
  if (!$(this).hasClass('disabled')) {
    do something
  }
});

答案 1

在除指令以外的任何地方使用DOM(包括检查属性)进行操作是不好的。您可以在作用域中添加一些值,指示是否应禁用链接。

但另一个问题是,ngDisabled 除了窗体控件之外,其他任何东西都不起作用,因此您不能将其与 <a> 一起使用,但您可以将其与 <button 一起使用>并将其样式设置为链接。

另一种方法是使用表达式的惰性计算,例如,如果为真,则不会调用操作。isDisabled || action()isDisabled

以下是两种解决方案:http://plnkr.co/edit/5d5R5KfD4PCE8vS3OSSx?p=preview


答案 2

我们可以有条件地添加 ng-click 事件,而无需使用禁用的类。

网页:

<div ng-repeat="object in objects">
<span ng-click="!object.status && disableIt(object)">{{object.value}}</span>
</div>