我有一个类别列表和许多属于不同类别的问题。
{
"id": 5,
"description": "Does your site have Facebook?",
"question_category_id": 3
}
{
"id": 1,
"name": "Network",
"description": "Network"
}
<table ng-repeat="c in categories">
<thead>
<tr>
<th>{{ c.id }}. {{ c.description }}</th>
</tr>
</thead>
<tbody ng-repeat="q in questions | filter: { question_category_id: c.id } : true">
<tr>
<td>{{q.description}}</td>
</tr>
</tbody>
</table>
这是显示某个类别下所有问题的代码。
但是我想循环遍历每个类别,并且只使用AngularJs在一个类别下显示1个问题。
有可能吗? 如果是,怎么样?
谢谢。
答案 0 :(得分:2)
这里有几种可能性,请查看ng-repeat(https://docs.angularjs.org/api/ng/directive/ngRepeat)的文档。例如,如果您只想显示第一个问题,可以在tr-tag上的ng-show中首先检查$。
但请注意,这只是在html中没有显示该类别的其他问题,您仍然从服务器检索到该类别的所有问题,这是浪费资源,因为您只是显示第一个问题。 / p>
答案 1 :(得分:0)
如果你真的想迭代questions
,那么你可以使用$index
。
<tbody
ng-repeat="q in questions | filter: { question_category_id: c.id } : true"
ng-show="$index == 0">
如果没有,但你仍然不想触摸JavaScript部分,那么我会使用
来解决这个问题<td>
{{ (questions | filter: { question_category_id: c.id } : true)[0].description }}
</td>