AngularJS: Liaison boolean valeur d'un bouton radio, tels que les mises à jour de modèle à faux sur décochez événement
Dans mon application AngularJS, je suis afficher les contacts des données dans une grille. Mon type de contacts JSON ressemble comme ci-dessous ...
[
{ type: "IM", value: "mavaze123", default: true },
{ type: "IM", value: "mvaze2014", default: false },
{ type: "IM", value: "mavaze923", default: false },
{ type: "IM", value: "mvaze8927", default: false },
{ type: "Email", value: "[email protected]", default: true },
{ type: "Email", value: "[email protected]", default: false }
]
La dernière propriété "par défaut" est en fait un bouton radio, la sélection de ce qui devrait changer la valeur par défaut d'origine correspondant au type de contact ci-dessus JSON. Il peut y avoir un défaut de chaque type de contact, c'est à dire on peut groupe de boutons radio basé sur le type de contact.
<div ng-repeat="contact in contacts">
<div>{{contact.type}}</div>
<div>{{contact.value}}</div>
<div><input type="radio" name="{{contact.type}}" ng-model="contact.default" ng-value="true"/></div>
</div>
Remarque: Le code ci-dessus n'est pas le montant exact, mais environ même, que
il apparaît à l'intérieur d'une grille personnalisée composant.
Maintenant, quand je charge mon point de vue/modifier le formulaire de la page ci-dessus JSON, il montre bien à la radio d'état de tous les contacts. Le problème vient, après le chargement de la page, lorsque l'utilisateur sélectionne un autre contact en tant que par défaut. Cela change réellement la valeur de modèle de défaut à true pour les nouveaux contact sélectionné toutefois, le modèle de la valeur d'origine par défaut de contact reste vrai, même si son la radio les modifications de l'état de décocher/flou (parce qu'ils sont ayant le même " nom " value).
J'ai pensé à écrire une directive, mais je suis incapable de trouver, il a déclenché sur radio-flou/décocher événement.
Il y a différents postes sur la liaison des valeurs booléennes pour les boutons radio, mais je suis incapable de le faire fonctionner dans mon scénario, que je veux mettre à jour le modèle de valeurs pour chaque bouton radio dans un groupe de boutons radio. Voir, il n'existe pas de modèle unique, représentant un groupe de boutons radio.
OriginalL'auteur mavaze | 2014-01-04
Vous devez vous connecter pour publier un commentaire.
Je pense que vous devriez changer votre conception de séparer les
contacts
decontactTypes
et stocker les clé à la valeur par défaut en cas de contact de type.Dans votre conception actuelle, il y a valeurs dupliquées pour
default
et ce n'est pas le souhait de travailler avecradio
.Vous Html:
DÉMO
Je suppose que la clé de contact est
value
, vous pouvez utiliser unId
pour votre contact.qu'entendez-vous par inverser échoue?
il n'y a pas de vrai ou de faux dans cette conception, vous affectez à la clé de contact par défaut au type de contact.
Salut @khanh-à, je parle de la solution que j'ai obtenus jusqu'à présent avec le format JSON que j'ai. Tout d'abord, je suis en mesure de sélectionner seulement un de chaque groupe. Deuxièmement, si la valeur par défaut=false et si j'ai choisi que la radio, les changements de modèle vrai, cependant, troisième, si je sélectionne une autre radio du même groupe, précédemment sélectionné radio bien des changements d'état (décocher/flou), ne change pas sa valeur de modèle pour de faux.
Je comprends votre problème comme il était indiqué dans la question. Je veux dire, dans le nouveau design, il n'y a pas de valeur par défaut (vrai ou faux) pour chaque contact. Nous passons la valeur par défaut pour le type de contact à la place. Chaque type de contact stocke l'Id de contact par défaut. Nous ne se soucient plus des vrai ou faux, le juste soin au sujet de la
Id
de la valeur par défaut dans le type de contact.OriginalL'auteur Khanh TO
J'ai ajouté un attribut de la directive dans mon instruction d'entrée ...
Et mon custom de la directive ...
OriginalL'auteur mavaze
Pourquoi vous déclarez
ng-value="true"
supprimez-leVeuillez utiliser
$scope.$apply()
dans votre modification de la valeur de codeComme quelque chose en dessous de
OriginalL'auteur Ramesh Rajendran