有可能不会"绑定"插值时的$ index?

时间:2014-10-16 09:14:36

标签: angularjs

我有一个ng-repeat列表,我正在尝试通过

替换每个项目的背景颜色
class="bg-{{$index%3}}"

但它也绑定到$ index尽管改变了项目的顺序,导致项目具有严格的背景颜色顺序为颜色1,颜色2,颜色3,等等。我希望它是这样的,当订单改变时,bg颜色/类不会改变。每个项目的类只应分配一次。

问题演示:plunker

2 个答案:

答案 0 :(得分:0)

是的,你需要这样做

<div ng-repeat="assignment in assignments track by $index | orderBy:'isPutOff'">
  <section class="{{'bg-'+($index%3)}}" ng-class="{'bg-grey':assignment.isPutOff}">
........

答案 1 :(得分:0)

我认为这就是你要找的东西,注意ng-init为项目分配第一个时间索引。只是为了确保我也添加到orderBy名称,但它与解决方案无关。

<h1 style="background: #333">Click the switch on the right side to toggle</h1>
<div ng-repeat="assignment in assignments  | orderBy:['isPutOff', 'name']" ng-init="assignment.index = assignment.index||$index">

http://plnkr.co/edit/3t5G32akJay7NJ9dxe2U?p=preview