我有一个模板,仅当当前项目与上一个项目具有某些不同的字段时,才想在其中生成一些HTML。如何在ng-repeat中访问上一个项目?
你可以做类似的事情
<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是针对指令数组的,它可能与作用域数组不同。使用内联变量访问正确的数组。
$index
<li ng-repeat="content in (correctContents = (contents | orderBy:'id'))"> {{ correctContents[$index - 1] }} is the prev element </li>
如果您筛选或订购,则为contents[$index] != content。
contents[$index] != content