7
votes

Comment générer des éléments dans une matrice JSON avec angularjs

Array JSON défini dans la portée: xxx

html: xxx

sortie: xxx

Ce que je veux que la sortie ressemble à: xxx

Comment il semble que cela devrait fonctionner: xxx

... Mais ce n'est pas le cas.


0 commentaires

5 Réponses :


12
votes

Changez votre matrice JSON dans la portée comme; xxx

et à votre vue; xxx


1 commentaires

Parfait, cela fonctionne. J'aime l'alternative:

{{question}} - {{réponse}} , qui ne nécessite pas d'ajout de clé / valeur, mais je pense que je pense que Ceci est plus extensible et plus proche de répondre à la question.



0
votes
$scope.faq = [
    "Answer1",
    "Answer2"
];


<div ng-repeat="answer in faq">
    Question {{$index+1}}-{{answer}}
</div>

1 commentaires

Cela diminue lorsque la question est une valeur dynamique, qu'elle est dans l'exemple non trivial, exemple.



8
votes

En raison d'être dans un tableau, vous devrez faire boucler les valeurs de clé de chaque objet.

http://fiddle.jshell.net/thesharsharpieone/qucck/ xxx

alternativement:
Si vous avez juste un objet simple: xxx

Vous pouvez éviter la deuxième répétition xxx

http://fiddle.jshell.net/thesharsieone/d3sed/


0 commentaires

0
votes

Si vous utilisez des navigateurs conformes à ECMA5, vous pouvez essayer, XXX

Bien sûr, cela ne fonctionnera que de manière fiable si votre objet n'a que 1 clé. S'il a plus d'une clé, votre meilleur pari sera d'écrire une fonction de filtrage qui obtient les noms de clé, que vous pouvez ensuite utiliser pour extraire les clés pertinentes.


1 commentaires

Tout en travaillant, je le trouve loin d'être concis et lisible. Comme vous l'avez également remarqué, l'ajout de clés non liées à votre objet briserait ce ngrépeat, ce qui signifie que ce n'est pas un bon design.