Множественные условия для 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
Ответы
Ответ 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"