【发布时间】:2017-06-12 16:39:57
【问题描述】:
我正在尝试展示某个系列的所有书籍。我使用了嵌套的 ng-repeat,效果很好。但是,由于最近布局要求的一些变化,我不能使用嵌套的 ng-repeat(我想要一个单一的书籍列表)。我希望像下面这样的东西
<ul>
<li>book1 of series1</li>
<li>book 2 of series 1</li>
<li>book1 of series 2</li>
<li>book2 of series 2</li>
<li>book1 of series 3</li>
<li>book2 of series 3</li>
</ul>
有没有办法用 1 ng-repeat 做到这一点?还是用其他方法? (即数组)
数据
var data = {
"records": [
{
"name": "Spectrum Series",
"seriesid": "SpectrumSeries",
"book": [
{
"name": "White Curse",
"bookid": "WhiteCurse",
"image": "book1"
},
{
"name": "Blue Fox",
"bookid": "BlueFox",
"image": "book2"
}
]
}
… other series
]
};
控制器
$scope.serieslist = data.records;
HTML
<div ng-repeat="series in serieslist">
<ul ng-repeat="book in series.book">
<li>
<div>{{series.name}}</div>
<div>{{book.name}}</div>
</li>
</ul>
</div>
【问题讨论】:
-
您希望结果如何?即
-
请提供您想要的 HTML 结构(非嵌套)。如果我理解正确,您将需要使用
ng-repeat-start和ng-repeat-end来获得 flat HTML 结构。但是如果没有新的 HTML 结构,就无法写出具体的答案。 -
这个怎么样
<div ng-repeat="series in serieslist"> <li> <div>{{series.name}}</div> <div>{{series.book[0].name}}</div> </li> </ul> </div> -
这是我所期望的
- 系列1的第1册
- 系列1的第2册
- 系列2的第1册 系列2的book2
- 系列3的book1
- 系列3的book2
标签: javascript json angularjs nested ng-repeat