我在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
}
});
发布于 2013-01-27 17:41:30
除了指令之外,在任何地方使用DOM操作(包括属性检查)都是不好的。您可以在作用域中添加一些值,以指示是否应禁用链接。
但另一个问题是,除了表单控件之外,ngDisabled不能在任何地方工作,因此您不能将其与一起使用,但您可以将其与一起使用,并将其样式化为链接。
另一种方法是使用像isDisabled || action()
这样的表达式的惰性计算,因此如果isDisabled
为真,则不会调用操作。
两种解决方案都在这里:http://plnkr.co/edit/5d5R5KfD4PCE8vS3OSSx?p=preview
发布于 2015-07-10 20:17:39
我们可以在不使用禁用类的情况下有条件地添加ng-click事件。
HTML:
<div ng-repeat="object in objects">
<span ng-click="!object.status && disableIt(object)">{{object.value}}</span>
</div>
发布于 2017-01-28 11:11:35
我使用&&表达式,它非常适合我。
例如,
<button ng-model="vm.slideOneValid" ng-disabled="!vm.slideOneValid" ng-click="vm.slideOneValid && vm.nextSlide()" class="btn btn-light-green btn-medium pull-right">Next</button>
如果vm.slideOneValid
为false,则不会触发表达式的第二部分。我知道这是将逻辑放到DOM中,但这是一种快速、肮脏的方式,可以禁用ng,然后单击以放置更好的内容。
只需记住将ng-model添加到元素中,就可以禁用ng。
https://stackoverflow.com/questions/14545744
复制相似问题