我正在使用ng-repeat来显示数组中的项目。对于每个项目,我检查$ index是否满足条件。
在Chrome甚至Internet Explorer中,这完美无缺。但是,在Mozilla中,它似乎只在ng-repeat结束后才更新$ index。因此,条件在很多时候都不起作用。这种情况的一个例子是:
<div class="active item" data-slide-number="{{$index}}" ng-repeat="img in attraction.Images" ng-if="img.first == true">
<img ng-src="{{IMG(img.FileName + img.FieExtention)}}" class="img img-responsive">
</div>
在回答洛伦佐的回答时,我也试过了
<div class="active item" data-slide-number="{{$index}}" ng-repeat="img in attraction.Images" ng-if="$parent.$index == 0">
<img ng-src="{{IMG(img.FileName + img.FieExtention)}}" class="img img-responsive">
</div>
<div class="item" data-slide-number="{{$index}}" ng-repeat="img in attraction.Images" ng-if="$parent.$index > 0">
<img ng-src="{{IMG(img.FileName + img.FieExtention)}}" class="img img-responsive">
</div>
我差点儿疯了......请帮忙
答案 0 :(得分:2)
ng-if
创建子范围。
要访问$index
,您需要使用$parent.$index
来访问ng-if
的父范围(因此范围为ng-repeat
)
答案 1 :(得分:1)
在同一元素上使用ng-repeat和ng-if不是一个好主意。 两者都创建了自己的范围,因此不建议这样做。
一般来说,尽可能避免在同一元素上使用其他指令与ng-repeat结合使用是个好主意。 你应该创建一个带有ng-repeat元素的子元素,并将其他指令放在那个子元素上。