我在下面写了一段代码,用于点击ng-repeat中的第一个元素,使其默认处于活动状态:
<ul id="thumbnails">
<li ng-repeat="thumbnail in thumbnails | filter:query" ng-switch on='$first' data-ng-click="toggleObject.item = $index" >
<div data-ng-class="{'active' : toggleObject.item == $index}" ng-switch-when='true' ng-click="getHdImage(thumbnail.IMAGE_ID)">
<img id="imageViewContainer" ng-src="{{thumbnail.PATH_SMALL}}"/>
</div>
</li>
</ul>
控制器:
imageView.getViewsByGroupId($stateParams.groupid)
.success(function(data) {
$scope.thumbnails = data;
$scope.toggleObject = {item: -1};
console.log($scope);
});
这样我就可以使用这个活动类使背景颜色变为红色。但是没有发生第一个元素的默认点击。尽管手动点击效果很好。
我在这里做错了什么。
答案 0 :(得分:2)
您可以使用 $ first 范围内的 ng-repeat 范围变量。
您也可以使用 ng-init 进行初始化。
<ul id="thumbnails">
<li ng-repeat="thumbnail in thumbnails | filter:query" data-ng-click="toggleObject.item = $index">
<div data-ng-class="{'active' : $first}" ng-init="$first && getHdImage(thumbnail.IMAGE_ID)" ng-click="getHdImage(thumbnail.IMAGE_ID)">
<img id="imageViewContainer" ng-src="{{thumbnail.PATH_SMALL}}" />
</div>
</li>
</ul>
你可以查看this那个演示的小傻瓜。