$ index不在ng-repeat内部工作

时间:2014-04-25 17:55:20

标签: angularjs angularjs-ng-repeat

我有以下ng-repeat HTML代码:

<group ng-repeat="group in groups" groups="groups" group="group"></group>

从我的对象生成组时,这对我很有用。我遇到的问题是$ index虽然不能在这个指令中工作。

所以在组模板中:

<div>
{{$index}} - {{group.Name}} {{group.Target}}
</div>

$ index始终未定义。

这是指令:

app.directive('group', function () {
    return {
        restrict: 'E',
        scope: {
            groups: '=',
            group: '='
        },
        templateUrl: '../../Content/templates/RecruitingGroups/Group.html',
        link: function (scope, el) {
            //Set Rules
            if (scope.group.Rule) {
                scope.ruleRules = scope.group.Rule.Rules;
            }
        }
    }
});

2 个答案:

答案 0 :(得分:3)

您的指令使用隔离范围。要访问父作用域内的$index,您需要使用$parent

<div>
    {{$parent.$index}} - {{group.Name}} {{group.Target}}
</div>

Fiddle

答案 1 :(得分:0)

您可以在ng-repeat

中定义当前键,而不是$index
<group ng-repeat="(key, group) in groups" groups="groups" group="group"></group>

<div>
  {{key}} - {{group.Name}} {{group.Target}}
</div>

这里的密钥与 $ index 的功能相同 $ index 将引用我们的父DOM,但键仅引用ng-repeat参数 因此,有时要访问父范围内的$ index,您必须使用 $ parent。$ index 而不是$ index,您可以使用