限制AngularJS中的ng-repeat迭代

时间:2014-05-29 13:49:04

标签: javascript angularjs

我有嵌套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>

2 个答案:

答案 0 :(得分:5)

我看起来你正走在正确的轨道上。假设您已经定义了$ scope.quantity,那么您的代码应该可行。与您的示例中一样,我建议您使用'limitTo'过滤器。

使用示例:

<div ng-repeat="item in items | limitTo:2">

您可以在此处查看实时示例:

http://jsfiddle.net/Nu7rZ/

这里有一个类似的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

的更多信息

您可能需要考虑将切片移动到控制器中,但这取决于您的使用案例和个人偏好。