默认单击ng-click angularjs中的第一个元素

时间:2015-09-27 19:44:58

标签: javascript angularjs

我在下面写了一段代码,用于点击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);
        });

这样我就可以使用这个活动类使背景颜色变为红色。但是没有发生第一个元素的默认点击。尽管手动点击效果很好。

我在这里做错了什么。

1 个答案:

答案 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那个演示的小傻瓜。