使用ng-if评估angularjs ng-repeat

时间:2015-06-12 23:35:28

标签: javascript angularjs

我正在寻找一种用表达式进行ng-repeat的方法。这是我现在拥有的。

<tr ng-cloak id="{{$index}}"
          ng-repeat-start="item in currentContoller.items | 
          orderBy: '-time'">
    <td>item.a</td>
    <td>item.b</td>
</tr>

我正在寻找的是这样的,其中firstItemOnly是一个复选框

<tr ng-cloak id="{{$index}}"
          ng-repeat-start="item in currentContoller.items | 
          orderBy: '-time' | 
          if ({{firstItemOnly}}) {limitTo: 1}"> //this is the line that needs added
    <td>item.a</td>
    <td>item.b</td>
</tr>

2 个答案:

答案 0 :(得分:0)

解决这样的问题的关键是在盒子外面思考。而不是尝试在 ng-repeat中使用表达式,而是向集合本身添加一个表达式:

// create a function that returns the relevant collection of items
$scope.getItems = function() {
    // if first item only, return the first item
    if (this.firstItemOnly)
    {
        return this.items.slice(0, 1);
    }

    // otherwise, return all items
    return this.items;
};

...

<tr ng-cloak id="{{$index}}"
    ng-repeat-start="item in getItems() | orderBy: '-time'">

答案 1 :(得分:0)

尝试使用$ first?

https://docs.angularjs.org/api/ng/directive/ngRepeat

使用ng-if和$ first并显示一个复选框。 bob =阿姨:)