ng禁用的多个条件

时间:2015-02-24 19:33:05

标签: angularjs boolean

我有下表和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

4 个答案:

答案 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或false
ng-disabled="condition1==true && condition2==true"

ng-disabled="variable1==true && variable2==true"