我有以下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;
}
}
}
});
答案 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,您可以使用键