应用orderBy后如何在ng-repeat中获取先前的对象

时间:2014-05-14 21:14:00

标签: angularjs angularjs-ng-repeat angularjs-orderby

我有一个具有“Category”属性的对象数组。在我的ng-repeat中,我通过有条件地显示带有类别名称的标题行来创建一个组,如果它与前一个值不同,则使用items[$index - 1]来检查前一个值。这可行,但如果我应用orderBy过滤器,似乎$ index不反映新订单。我做错了什么?

1 个答案:

答案 0 :(得分:5)

一发布这篇文章,我意识到可能会解决这个问题。我添加了track by item.itemId,它开始按预期运行。

<div class="row" ng-repeat="item in items track by item.itemId | filter: searchTerms | orderBy:['Category1', 'Category2']">
  <div class="rowHeader" ng-show="$index == 0 || item.Category1 != items[$index -1].Category1">
    {{item.Category1}}
  </div>
</div>