Подтвердить что ты не робот

Множественные условия для ng-disabled

У меня есть следующая таблица с тремя флажками. Я назначил каждому свою собственную модель.

У меня есть кнопка, которую я хочу отключить, если ни одна из трех моделей флажков не верна.

Однако я смущен, так как я ожидал использовать

<button " ng-disabled="!mt0 || !mt1 || !mt2">Reassign</button>

поскольку если любой из них должен быть правдой, кнопка не должна быть отключена.

Однако обратное работало:

<button ng-disabled="!mt0 && !mt1 && !mt2">Reassign</button>

Почему?

Смотрите plnkr здесь: http://plnkr.co/edit/yURa3g0aNjDyfEvjK2D0?p=preview

4b9b3361

Ответ 1

Вы можете сделать это, чтобы достичь того, чего хотите: 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>

Ответ 2

Очень простая ng-disable="true" означает отключение кнопки.

Теперь предположим, что все mt0, mt1, mt2 истинны

mt0 || mt1 || mt2==true

тогда он отключит кнопку

даже любое из них true делает выше условие true и отключает кнопку.

!mt0 || !mt1 || !mt2==false, если все верно и не отключит кнопку.

но любое из них true делает выше условие true и отключает кнопку.

mt0 && mt1 && mt2==true, если все верно и отключит кнопку

но любое из них false делает выше условие false и не отключает кнопку.

!mt0 && !mt1 && !mt2==false если все верно и не отключает кнопку

но любое из них false делает выше условие ложным и отключает кнопку.

Ответ 3

ng-disabled="true" приведет к отключению кнопки.

С mt0 || mt1 || mt2, если они имеют значение true, выражение принимает значение true, поэтому, если значение true, кнопка отключена.

Вместо того, чтобы говорить "отключено, если", проще сказать "отключено когда". Вы хотите, чтобы кнопка отключена, когда все свойства являются ложными. Вам нужно false && false && false, поэтому !mt0 && !mt1 && !mt2 имеет смысл!

Ответ 4

просто, напишите true или false без

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

или

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