ng-如果不比较ng-repeat中的$ index

时间:2015-06-03 11:38:47

标签: javascript jquery angularjs

在我的代码中,我只想从数组中打印第一个单词,而我正在使用 ng-if 条件。

HTML:

<div ng-controller="MyCtrl">
  <div ng-repeat="Word in Words">
   <div ng-if="$index === 0" class="preview">{{Word}}- {{$index}}</div>
  </div>
</div>

控制器:

var myApp = angular.module('myApp', []);

function MyCtrl($scope) {
    $scope.Words = ['Mon','Tue','Wed'];
}

正如您所看到的,我使用ng-if="$index === 0"然后打印div值,但它想要工作,不知道为什么?

实施例:How to install stringi library from archive and install the local icu52l.zip

4 个答案:

答案 0 :(得分:6)

ngIf来自角度版本1.2.1但您使用的是1.0.3 因此您的ng-if不起作用。如果将角度版本升级到最新版本,则可以正常工作。

否则我建议使用 ngShow 指令

在此上下文中使用ng-show,只需将$first用于数组中的show first元素

 <div ng-show="$first" class="preview">{{Word}}- {{$index}}</div>

Fiddle

当我们使用ngIf和ngShow时:

ngIf 指令根据{expression}

删除或重新创建DOM树的一部分

ngShow 指令根据提供给ngShow属性的表达式显示或隐藏给定的HTML元素

答案 1 :(得分:2)

更好的方法是使用$first而不是比较$index

<div ng-controller="MyCtrl">
    <div ng-repeat="Word in Words">
        <div ng-show="$first" class="preview">{{Word}}- {{$index}}</div>
    </div>
</div>

答案 2 :(得分:1)

使用最新版本的AngularJS,它应该可以工作。

答案 3 :(得分:0)

只需使用ng-show就可以了:)

  <div ng-controller="MyCtrl">
    <div ng-repeat="Word in Words">
       <div ng-show="$index == 0" class="preview">{{Word}}- {{$index}}</div>
     </div>
  </div>