AngularJS $ index始终为0

时间:2016-05-03 16:45:03

标签: javascript angularjs function indexing

我遇到了angularjs和$ index

的问题

我在一个函数的参数给它。它适用于{{}}中的HTML({{$ index}}作品)。但它在功能上不起作用。我警告索引,它总是0 ...

我在项目的另一个位置使用它并且工作正常..

这是代码。

<input type="checkbox" id="rounded1" ng-click="setClickEvent($index)" ng-model="clickStatus"/>

带有函数的JS文件:

$scope.setClickEvent = function(index) {
  alert(index);

};

警报始终为0 ....

我希望有人可以帮助我。谢谢:))

3 个答案:

答案 0 :(得分:0)

您似乎没有在<input>指令中使用此ng-repeat标记。 $index将显示0,除非它在ng-repeat中使用,它将从0到n进行计数。

也许你打算做这样的事情:

<div ng-repeat="i in [1, 2, 3, 4, 5] track by $index">
    <input type="checkbox" ng-click="setClickEvent($index)" ng-model="clickStatus"/>
</div>

我删除了ID,因为5个复选框中的每个复选框都具有相同的ID无效。

答案 1 :(得分:0)

对不起,这是带有ng-repeat

的整个html代码
<div ng-repeat="frage in frageListe">
        <div class="input-group">
            <div class="container-fluid list-group-item ">
                <div class="rounded">
                    <input type="checkbox" id="rounded1" ng-click="setClickEvent(frage.id)" ng-model="clickStatus"/>
                    <label for="rounded1"></label>
                </div>
                <div class="list-text">
                    <h3 class="list-group-item-heading quest-list-text serif">{{frage.titel}} {{$index}}</h3>
                </div>
            </div>
        </div>
        <hr class="divider-line-questlist">            

        </div>

答案 2 :(得分:0)

不知道这是否相关,但是我遇到了同样的问题。对我来说,问题是我嵌套了多个ng-repeats。为了解决这个问题,我使用ng-init为索引设置了别名。

https://docs.angularjs.org/api/ng/directive/ngInit

<script>
  angular.module('initExample', [])
    .controller('ExampleController', ['$scope', function($scope) {
      $scope.list = [['a', 'b'], ['c', 'd']];
    }]);
</script>
<div ng-controller="ExampleController">
  <div ng-repeat="innerList in list" ng-init="outerIndex = $index">
    <div ng-repeat="value in innerList" ng-init="innerIndex = $index">
       <span class="example-init">list[ {{outerIndex}} ][ {{innerIndex}} ] = {{value}};</span>
    </div>
  </div>
</div>