使用ng-if的ng-repeat中的第一个$

时间:2017-06-02 16:05:05

标签: angularjs

我有以下内容:

<li ng-repeat"item in items" ng-if="item.type && item.type=='image'">
 <span ng-class="{'selected':$first}">{{item.title}}</span>
</li>

我尝试做的只是显示所有项目标题,如果它是图片类型,并且第一个项目具有类selected

问题来自ng-if。如果第一个项目不是图像类型,则显示的实际第一个项目没有selected类。

如何更新?

1 个答案:

答案 0 :(得分:1)

您可以创建仅包含图像的新列表。然后ng-repeat结束:

$scope.onlyImages = $scope.items.filter(function(item) {
    return item.type && item.type === 'image';
});

<li ng-repeat"item in onlyImages">
   <span ng-class="{'selected':$first}">{{item.title}}</span>
</li>

您也可以在带有过滤器的模板中执行此操作,但由于它在每个摘要周期运行,因此会更昂贵。