Angularjs: case à cocher et ng-changement
J'ai des problèmes pour comprendre comment ng-changer de travail. J'ai une liste d'utilisateur pour les inviter à se joindre à une vente aux enchères. Je veux le faire avec une case à cocher. Si l'utilisateur est vérifiée, son nom doit être enregistré dans un tableau. Et plus tard, je vais les inviter(je sais juste comment le faire). Mais je ne comprends pas comment utiliser la case à cocher.
J'ai fait quelque chose comme ceci:
<ul class="list-group" ng-repeat="user in users">
<li class="list-group-item" ng-hide="user.name == profile">
<img ng-src="{{user.img}}" class="image2" >
<div class="username"> {{user.name}}</div>
<div class="userrole"> {{user.role}} </div>
<div class="usercompany">{{user.company}}</div>
<input type="checkbox" ng-model="isChecked" ng-change="insertinvited(user.name)">
</li>
</ul>
Et dans mon controller:
$scope.invited = [];
$scope.insertinvited= function (name) {
if($scope.isChecked){
$scope.invited.push(name)
} else {
console.log($scope.invited);
}
};
Mais ce n'est pas de travail, dans la console du tableau est toujours vide.
Vous devez vous connecter pour publier un commentaire.
Le problème dans ton code, c'est que votre case modèle (
isChecked
) est utilisé par tous lesusers
vous ngRepeated sur:Je vous suggère d'avoir une case à cocher modèle pour chaque utilisateur:
Remarque que dans votre
ng-change
, j'ai passer l'ensemble desuser
objet, et pas seulementuser.name
(parce que j'ai également besoin de l'user.isChecked
propriété).Ici est le "nouveau"
insertinvited()
fonction:else
pour la suppression. Veuillez accepter la réponse si il résolu votre problèmeCe dont vous avez besoin ici est
isChecked
pour tous les éléments dansng-repeat
et pas seulement comme une simple variable. Donc, j'ai changé votrecheckbox
comme:Voici de travail exemple:
JS:
HTML:
MODIFIER: Toutefois, cette façon de faire, vous avez besoin pour gérer le retrait également. Je vous suggère d'aller avec l'approche suivante à la place.
Explication: Sur le changement de case de valeur, vous filtrez tous les utilisateurs avec
isChecked
ensemble detrue
.JS:
HTML:
Utiliser
Cette Partie de contrôleur.