J'ai un json comme suit :
[
{"teacher":"Tom","student":[{"name":"stuA","project":"projectA"},{"name":"stuB","project":"projectB"}]},
{"teacher":"Jerry","student":[{"name":"stuC","project":"projectC"},{"name":"stuD","project":"projectD"},{"name":"stuE","project":"projectE"}]},
{"teacher":"Lee","student":[{"name":"stuF","project":"projectF"}]}
]
Maintenant, je souhaite restituer ces données dans un tableau via ng-repeat. L'image attendue est la suivante :
Mais j'ai rencontré beaucoup de difficultés. C'est probablement la pratique de ng-repeat la plus gênante que j'ai jamais rencontrée.
Ci-joint le code html de ce formulaire afin que chacun puisse voir clairement la structure de ce formulaire :
<tr style="height:40px" >
<td rowspan="2" style="text-align:center;background:#FFD4D4;font-weight:bold;">Tom</td>
<td style="text-align:center;font-size:15px;font-weight:bold;">stuA</td>
<td style="text-align:left;padding-left:100px;font-size:15px;font-weight:bold;">projectA</td>
</tr>
<tr style="height:40px;">
<td style="text-align:center;font-size:15px;font-weight:bold;">stuB</td>
<td style="text-align:left;padding-left:100px;font-size:15px;font-weight:bold;">projectB</td>
</tr>
<tr style="height:40px">
<td rowspan="3" style="text-align:center;background:#FFD4D4;font-weight:bold;">Jerry</td>
<td style="text-align:center;font-size:15px;font-weight:bold;">stuC</td>
<td style="text-align:left;padding-left:100px;font-size:15px;font-weight:bold;">projectC</td>
</tr>
<tr style="height:40px;">
<td style="text-align:center;font-size:15px;font-weight:bold;">stuD</td>
<td style="text-align:left;padding-left:100px;font-size:15px;font-weight:bold;">projectD</td>
</tr>
<tr style="height:40px;">
<td rowspan="1" style="text-align:center;background:#FFD4D4;font-weight:bold;">Lin</td>
<td style="text-align:center;font-size:15px;font-weight:bold;">stuE</td>
<td style="text-align:left;padding-left:100px;font-size:15px;font-weight:bold;">projectE</td>
</tr>
Le problème de cette boucle est que le professeur occupe quelques lignes exclusivement, et la boucle doit être imbriquée. Je demande donc au maître d'utiliser son cerveau pour m'aider à réfléchir à la façon de mettre en œuvre ce ng-repeat
Quant à savoir si Teacher doit être fusionné, peut-il être contrôlé avec une variable ? Par exemple, si un nombre est supérieur à 0, il doit être fusionné, et si le nombre est supérieur à 0, cela signifie le nombre de lignes à fusionner.
Code :
J'ai fait de petites modifications basées sur la réponse de @chenmo :
Ce qui suit est une capture d'écran des résultats :