J'ai le tableau suivant avec 3 cases à cocher. J'ai assigné à chacun son propre modèle.
J'ai un bouton que je veux désactiver, sauf si l'un des 3 modèles de case à cocher est vrai.
Cependant, je suis confus puisque je m'attendais à utiliser
<button " ng-disabled="!mt0 || !mt1 || !mt2">Reassign</button>
puisque si aucun de ceux-ci étaient vrais, le bouton ne devrait pas être désactivé.
Cependant, le opposé a fonctionné:
<button ng-disabled="!mt0 && !mt1 && !mt2">Reassign</button>
Pourquoi?
Voir plnkr ici: http://plnkr.co/edit/yURa3g0aNjDyfEvjK2D0?p=preview
Vous pouvez le faire pour réaliser ce que vous voulez: violon
<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>
Très simple ng-disable="true"
signifie désactiver le bouton.
Supposons maintenant que tous les mt0, mt1, mt2 sont vrais
mt0 || mt1 || mt2==true
alors il va désactiver le bouton
même n'importe lequel d'entre eux true rend la condition ci-dessus vraie et désactive le bouton.
!mt0 || !mt1 || !mt2==false
si tout est vrai et ne désactivera pas le bouton.
mais aucun d'entre eux true rend la condition ci-dessus vraie et désactive le bouton.
mt0 && mt1 && mt2==true
si tout est vrai et désactivera le bouton
mais aucun d'entre eux false rend la condition ci-dessus fausse et ne désactive pas le bouton.
!mt0 && !mt1 && !mt2==false
si tout est vrai et ne pas désactiver le bouton
mais chacun d'entre eux false rend la condition ci-dessus fausse et désactive le bouton.
ng-disabled="true"
entraînera la désactivation du bouton.
Avec mt0 || mt1 || mt2
, si aucun est vrai, l'expression est évaluée comme étant vraie. Par conséquent, si aucun est vrai, le bouton est désactivé.
Au lieu de dire "désactivé sauf", il est plus facile de dire "désactivé quand". Vous voulez que le bouton soit désactivé quand toutes les propriétés sont fausses. Vous avez besoin de false && false && false
, donc !mt0 && !mt1 && !mt2
a du sens!
écrivez simplement vrai ou faux sans ''
ng-disabled="condition1==true && condition2==true"
ou
ng-disabled="variable1==true && variable2==true"