我有嵌套ng-repeat这样的东西。我想将它限制为仅使用列表中的前2项(而不是完整列表)。
ng-repeat = "items in phone.comments
和HTML:
<div class="wallList clearfix" ng-repeat = "items in phone.comments | limitTo:quantity">
<div class="wallListImage">
<a href="#">
<img ng-show = "items.imageUrl" ng-src="{{items.imageUrl}}" height = "42px" width= "42px"/>
<img ng-show = "!items.imageUrl" ng-src="WishlistImage/movies.png" height = "42px" width= "42px"/>
</a>
</div>
</div>
答案 0 :(得分:5)
我看起来你正走在正确的轨道上。假设您已经定义了$ scope.quantity,那么您的代码应该可行。与您的示例中一样,我建议您使用'limitTo'过滤器。
使用示例:
<div ng-repeat="item in items | limitTo:2">
您可以在此处查看实时示例:
这里有一个类似的Stack Overflow问题:
Way to ng-repeat defined number of times instead of repeating over array?
答案 1 :(得分:2)
您可以使用以下方法在ng-repeat语句中明确限制:
ng-repeat="items in phone.comments.slice(0,2)"
JavaScript slice
函数采用start(包含)和end(独占)数组索引,因此上面将给出前两项。
有关工作示例,请参阅http://jsfiddle.net/spikeheap/9fBvT/。另请参阅http://www.w3schools.com/jsref/jsref_slice_array.asp以获取有关slice
。
您可能需要考虑将切片移动到控制器中,但这取决于您的使用案例和个人偏好。