À l'aide de ng-repeat sur JSON JSON contenant
Je suis un peu nouveau pour anguleuses, et je vais avoir des problèmes avec mon json et ng-se répète. J'ai une liste de "modules" et ensuite les listes de "semaines" à l'intérieur d'eux:
{
"modules":
{
"module1":
{
"title":"name of module1",
"description":"description of module1",
"weeks":{"week1":{"title":"Week 01"}
},
"module2":
{
"title":"name of module2",
"description":"description of module2",
"weeks":{"week2":{"title":"Week 02"},"week3":{"title":"Week 03"}
}
}
}
ma dernière sortie est un tableau, et je peux obtenir les modules de répéter, mais je vais avoir du mal à comprendre ce que je fais mal en obtenant les semaines à boucle. Voici mon template:
<table class="table table-bordered" ng-repeat="module in ocw.modules">
<tr>
<td>
<h3 class="moduletitle">{{ module.title }}</h3>
<h4>Description</h4>
<p>{{ module.description }}</p>
</td>
</tr>
<tr ng-repeat="week in ocw.modules.weeks">
<td>
{{ week.title }}
</td>
</tr>
</table>
De telle manière que la sortie 2 tables, avec les bons titres et les descriptions, mais je n'arrive pas à obtenir les semaines pour s'afficher correctement. Notez que certains "modules" plus qu'une "semaine". Je ne suis pas vraiment sûr si l'erreur est dans mon template ou json.
Merci pour toute aide.
S
- pls partager votre violon comme la structure de l'objet semble avoir erreur de syntaxe
Vous devez vous connecter pour publier un commentaire.
Je voudrais changer la structure de données afin que vos modules et les semaines sont un tableau d'objets.
Démo: http://plnkr.co/edit/e41n9vAMMLf0WWIUQ8HO?p=preview
données json:
Et puis votre balisage serait:
Que vous êtes une itération sur chaque module qui dans ce cas est
module
pour obtenir les semaines, il est justemodule.weeks
la même quemodule.title
. Dans votre exemple, vous êtes à l'intérieur de l'itération et d'essayer de référenceocw.modules.weeks
qui ne correspond pas à votre structure json.key
qui a unspace
- t-il?obj["key with space"]
Changement
à
parce que vous avez maintenant un module à votre portée, et c'est que du module de semaines que vous êtes après.
Juste par souci d'exhaustivité, si votre table a du style et de la
thead
, cengRepeat
va créer plusieurs tables, ce qui n'est pas ce que nous voulons.Pour éviter cela, il suffit d'utiliser la première
ng-repeat
dans untbody
élément: