ng-disabled 的多个条件

Multiple conditions for ng-disabled

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

ng-disabled="true" 将导致按钮被禁用。

mt0 || mt1 || mt2 中,如果有任何一个为真,则表达式的计算结果为真,因此如果有任何一个为真,则按钮被禁用。

与其说"disabled unless",不如说"disabled when"。当 所有属性都为 false 时,您希望 禁用按钮。您需要 false && false && false,所以 !mt0 && !mt1 && !mt2 有意义!

很简单ng-disable="true"表示禁用按钮。

现在假设 mt0,mt1,mt2 都为真

mt0 || mt1 || mt2==true

然后它将禁用按钮

即使其中任何一个为真也会使上述条件为真并禁用按钮。

!mt0 || !mt1 || !mt2==false 如果一切为真,将不会禁用按钮。

但其中任何一个为真都会使上述条件为真并禁用按钮。

mt0 && mt1 && mt2==true 如果一切为真,将禁用按钮

但其中任何一个为假都会使上述条件为假并且不会禁用按钮。

!mt0 && !mt1 && !mt2==false 如果一切为真并且没有禁用按钮

但其中任何一个为 false 都会使上述条件为 false 并禁用按钮。

你可以这样做来实现你想要的: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>

简单的写真假不带''

ng-disabled="condition1==true && condition2==true"

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