我有下表和3个复选框。我为每个人分配了自己的模型。
我有一个我想要被禁用的按钮,除非3个复选框模型中的任何一个都是真的。
但是我很困惑,因为我希望使用
<button " ng-disabled="!mt0 || !mt1 || !mt2">Reassign</button>
因为如果任何为真,则不应禁用该按钮。
然而,相反工作:
<button ng-disabled="!mt0 && !mt1 && !mt2">Reassign</button>
为什么?
请参见此处的plnkr:http://plnkr.co/edit/yURa3g0aNjDyfEvjK2D0?p=preview
答案 0 :(得分:21)
您可以这样做以达到您想要的效果:fiddle
<div ng-app>
<input type="checkbox" ng-model="mt0">
<input type="checkbox" ng-model="mt1">
<input type="checkbox" ng-model="mt2">
<button ng-disabled=" (mt0||mt1||mt2) ? false : true">Reassign</button>
</div>
答案 1 :(得分:4)
非常简单ng-disable="true"
表示禁用该按钮。
现在假设所有mt0,mt1,mt2都是真的
mt0 || mt1 || mt2==true
然后它将禁用按钮
即使其中任何一个为true都会使上述条件成立并禁用该按钮。
!mt0 || !mt1 || !mt2==false
如果一切都是真的并且不会禁用该按钮。
但是其中任何一个都使上述条件成立并禁用按钮。
mt0 && mt1 && mt2==true
如果一切都是真的并且会禁用按钮
但是其中任何一个false都会使上述条件为false并且不会禁用该按钮。
!mt0 && !mt1 && !mt2==false
如果一切都是真的而不是禁用按钮
但是其中任何一个false都会使上述条件为false并禁用该按钮。
答案 2 :(得分:1)
ng-disabled="true"
会导致按钮被禁用。
使用mt0 || mt1 || mt2
,如果有的话,则表达式的计算结果为true,因此如果为true,则禁用该按钮。
不是说“禁用”,而是说“禁用时”更容易。当所有属性都为false时,您希望按钮禁用。您需要false && false && false
,因此!mt0 && !mt1 && !mt2
有意义!
答案 3 :(得分:0)
简单地说,如果没有''
,则写入true或falseng-disabled="condition1==true && condition2==true"
或
ng-disabled="variable1==true && variable2==true"