一尘不染

如何获得ng-repeat中的上一个项目?

angularjs

我有一个模板,仅当当前项目与上一个项目具有某些不同的字段时,才想在其中生成一些HTML。如何在ng-repeat中访问上一个项目?


阅读 197

收藏
2020-07-04

共1个答案

一尘不染

你可以做类似的事情

<div ng-app="test-app" ng-controller="MyController">
    <ul id="contents">
      <li ng-repeat="content in contents">
          <div class="title">{{$index}} - {{content.title}} - {{contents[$index - 1]}}</div>
      </li>
    </ul>
</div>

JS

var app = angular.module('test-app', []);

app.controller('MyController', function($scope){
    $scope.contents=[{
        title: 'First'
    }, {
        title: 'Second'
    }, {
        title: 'Third'
    }]
})

演示:小提琴


注意: $index是针对指令数组的,它可能与作用域数组不同。使用内联变量访问正确的数组。

<li ng-repeat="content in (correctContents = (contents | orderBy:'id'))">
  {{ correctContents[$index - 1] }} is the prev element
</li>

如果您筛选或订购,则为contents[$index] != content

2020-07-04