Angulaire ng-repeat sur table avec des données d'entrée
La réponse semble être que les deux sens de la liaison de données fonctionne si vous avez un tableau d'objets d'aller à une ng-repeat, mais a ne fonctionne pas si vous avez un tableau de chaînes de caractères.
Je tiens à fournir une INTERFACE utilisateur où les utilisateurs peuvent entrer des destinataires multiples. J'ai un tableau de noms appelés "récepteurs". Je pensais que je pouvais afficher un tableau à l'aide de ng-repeat, comme suit:
<table>
<tr ng-repeat = "receiver in receivers">
<td><input type = "text" ng-model = "receiver"></td>
<td><div ng-click = "addRecipient(receiver)">+</div></td>
<td><div ng-click = "deleteRecipient(receiver)">-</div></td>
</tr>
</table>
Le problème, je vais courir pour que je ne connais pas de moyen d'obtenir le contenu de "récepteur" de retour à mon contrôleur, des autres que par les appels à addRecipient ou deleteRecipient. Ce qui rend difficile pour moi d'utiliser ces données.
Toutes les suggestions sont grandement appréciés. Si il y a une meilleure ou "plus correct" façon de le faire, je serais ravi de le voir.
receivers
tableau n'est pas mise à jour si vous modifiez la valeur de l'un des receiver
éléments? err jamais l'esprit, je pense que ce que vous essayez de dire, c'est que vous voulez ajouter un élément à partir d'une liste dans une autre liste?Je suis en train de puzzle ce que votre problème est ici, et pourquoi les appels font qu'il est "difficile pour vous d'utiliser les données". Peut-être un peu plus de contexte est nécessaire, à l'instar de ce que vous éprouvez de la difficulté à faire avec les données et/ou ce que vos fonctions réellement faire.
Il n'y a pas deux voies de liaison de données entre le champ de saisie, et tout ce que j'ai accès à partir de l'intérieur de mon contrôleur. Donc je ne peux pas répondre à l'utilisateur la saisie de données
Oui, je suis en train de dire que les récepteurs de la matrice de ne pas mettre à jour si vous modifiez la valeur de l'un des récepteur éléments.
OriginalL'auteur Greg Dougherty | 2015-01-27
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de faire grand chose de plus. Quel que soit le texte est saisi dans le champs de texte sur votre page sera automatiquement présent dans votre $champ d'application.les récepteurs de tableau. J'ai toujours définir ma portée variable explicitement dans mon contrôleur.
J'ai un exemple de travail, mais à l'aide d'un simple objet à la place de Chaînes de caractères, qui pourrait être le problème.
http://plnkr.co/edit/g66KTkDPlWt0xs5EZrrx?p=preview
script:
html:
Mise à jour de réponse avec un exemple de travail. J'ai eu un problème en essayant d'utiliser directement des chaînes, mais à l'aide d'objets au lieu de cela a bien fonctionné. Voir l'exemple pour plus de détails.
Merci, je vais essayer ça. Si je dois utiliser des objets pour le faire fonctionner, je suis prêt à le faire.
Cela a marché, merci!
OriginalL'auteur Nicholas Hirras
Si vous souhaitez évaluer une expression (ou, dans votre cas, les informations d'affichage pour chaque "récepteur"), vous pouvez utiliser l'opérateur "{{yourExpression}}".
Exemple :
<td>{{receiver.oneAttribute}}</td>
Voir cette documentation pour plus d'informations : https://docs.angularjs.org/guide/expression
OriginalL'auteur Aliz