Comment donner de la valeur dynamiquement pour ng-model dans angularjs?
Ici, je suis de la génération d'un élément html dynamiquement à l'aide de ng-repeat
par exemple
<div ng-repeat="type in types">
<input type="checkbox" ng-model="{{type}}" />{{ type }}
</div>
Je veux définir le type de la valeur pour les ng-model. Est-il possible ou bien je veux mettre ce type de valeur pour le gn-vrai-valeur comme cela
<div ng-repeat="type in types">
<input type="checkbox" ng-model="{{type}}" ng-true-value="{{type}}" />{{ type }}
</div>
source d'informationauteur Prashanth Suriyanarayanan
Vous devez vous connecter pour publier un commentaire.
Depuis ng-repeat crée un enfant pour chaque type de/item/itération, nous avons besoin d'associer la ng-modèle pour chaque type avec le parent, plutôt que de l'enfant. Une façon de le faire est d'utiliser $parent:
Si $champ d'application.types est défini comme dans @Alex réponse, puis propriétés
typeOne
typeTwo
ettypeThree
apparaîtra sur la portée parent si la case correspondante est cliqué, et la valeur de la propriété seratrue
. Si une case est cochée cliqué de nouveau, le reste des biens, et la valeur de l'interrupteur àfalse
. Votre code devra donc vérifier inexistante propriétés et pour les propriétés qui existent avec la valeur true ou false. C'est un peu désordonné.Je préfère prédéfinir un tableau d'objets sur la portée parent, où chaque objet a le type (name), et un booléen pour indiquer si elle est activée ou non:
Alors, $parent n'est pas requis (parce que la valeur de "type" est une référence à l'objet parent, plutôt qu'une copie de la propriété parent (primitive) de la valeur):
Voir aussi Quelles sont les nuances de portée prototypes /l'héritage par prototype dans AngularJS? pour en savoir plus sur ng-repeat et de l'enfant étendues.
Vous pouvez stocker les valeurs dynamiques dans l'un des $portée propriétés comme suit:
Vous pouvez ensuite vérifier vos valeurs par l'intermédiaire de votre typeValues propriété de votre portée.