Existe-t-il un moyen de transmettre à la directive angulaire ng-clic la valeur de l'entrée associée?
En d’autres termes, que devrait remplacer this.value
dans ce qui suit:
<input type="checkbox" id="cb1" ng-click="checkAll(this.value)" />
PS. Je ne veux pas de solution de contournement pour alterner les valeurs, je me demande simplement s'il est possible de passer la valeur d'une entrée comme argument d'une fonction angulaire.
Vous pouvez faire les choses suivantes:
ng-click
par ng-change
ng-true-value="someValue"
et ng-false-value="someValue"
.L'ordre d'exécution de
ng-click
etng-model
est ambigu puisque ils ne définissent pas de priorités claires. Au lieu de cela, vous devriez utiliser ng-change ou un$watch
sur le$scope
pour vous assurer d'obtenir les valeurs correctes de la variable de modèle.
Gracieuseté de musically_ut
<input type="checkbox" id="cb1" ng-model="check" ng-change="checkAll(check)" ng-true-value="YES" ng-false-value="NO"/> Citizen
Aujourd'hui, je voulais faire la même chose et je vois que personne n'a répondu à la question. Ceci est contraire à la philosophie angulaire, mais vous pouvez remplacer "this.value" par "$ event.target.checked":
<input type="checkbox" id="cb1" ng-click="checkAll($event.target.checked)" />
Si vous lui affectez un modèle-ng, sa valeur booléenne sera renvoyée en fonction de sa modification:
<input type="checkbox" id="cb1" ng-model="checkValue" ng-change="checkAll(checkValue)" />
Mieux vaut utiliser ng-change plutôt que ng-click
Liez la case à cocher à une valeur et transmettez-la à ng-click
.
<input type="checkbox" ng-model="value" id="cb1" ng-click="checkAll(value)" />