web-dev-qa-db-fra.com

détecter si la case à cocher est activée ou désactivée dans l'événement angularjs ng-change

Je souhaite détecter si une case à cocher a été cochée ou non cochée lorsqu'un clic est effectué sur la case à cocher.

C'est ce que j'ai

<input type="checkbox" ng-model="answers[item.questID]" ng-change="stateChanged()" />

Et puis dans le contrôleur j'ai:

$scope.stateChanged = function () {
    alert('test');
}

Je peux déclencher l'alerte lorsque je coche/décoche, mais comment puis-je détecter l'état de la case à cocher? J'ai fait quelques recherches pour trouver un problème similaire mais je n'ai pas pu obtenir ce dont j'avais besoin.

Merci, Laziale

42
Laziale

Vous pouvez simplement utiliser la valeur liée ng-model (answers[item.questID]) Elle-même dans votre méthode ng-change pour détecter si elle a été vérifiée ou non.

Exemple:-

<input type="checkbox" ng-model="answers[item.questID]" 
     ng-change="stateChanged(item.questID)" /> <!-- Pass the specific id -->

et

$scope.stateChanged = function (qId) {
   if($scope.answers[qId]){ //If it is checked
       alert('test');
   }
}
66
PSL

L'état de la case à cocher sera reflété sur le modèle auquel vous êtes lié, dans ce cas, $scope.answers[item.questID]

0
Brennan