首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么$parent.$index等于$index?

为什么$parent.$index等于$index?
EN

Stack Overflow用户
提问于 2017-09-07 07:47:10
回答 1查看 59关注 0票数 0

在AngularJS 1.6.3中,基本上可以嵌套ng-重复。

我已经确定,在两个嵌套的ng-重复中,$parent.$index等于$index。

给出了以下代码:

代码语言:javascript
复制
<div ng-repeat="category in :: $ctrl.categories">
  <span id="category-{{ $index }}">
    {{ :: category.name }}
  </span>

  <ul>
   <li ng-repeat="data in :: category.links"
       id="link-{{ $parent.$index }}-{{ $index }}">
     {{ :: data.name }}
   </li>
  </ul>
</div>

期望为LI生成ID:

代码语言:javascript
复制
<div>
  <span id="category-0">CatA</span>

  <ul>
    <li id="link-0-0">[..]</li>
    <li id="link-0-1">[..]</li>
    <li id="link-0-2">[..]</li>
  </ul>
</div>

<div>
  <span id="category-1">CatB</span>

  <ul>
    <li id="link-1-0">[..]</li>
    <li id="link-1-1">[..]</li>
  </ul>
</div>

为LI生成ID的实际

代码语言:javascript
复制
<div>
  <span id="category-0">CatA</span>

  <ul>
    <li id="link-0-0">[..]</li>
    <li id="link-1-1">[..]</li>
    <li id="link-2-2">[..]</li>
  </ul>
</div>

<div>
  <span id="category-1">CatB</span>

  <ul>
    <li id="link-0-0">[..]</li>
    <li id="link-1-1">[..]</li>
  </ul>
</div>

有人能证实这种行为吗?还是我错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-07 08:30:20

按预期工作。

代码语言:javascript
复制
angular.module('test', []).controller('Test', Test);

function Test($scope) {
  var $ctrl = this;
  
  $ctrl.categories = [
    {
      name: 'cat1', 
      links: [{name: 'l1'}, {name: 'l2'}, {name: 'l3'}]
    },
    {
      name: 'cat2',
      links: [{name: 'l4'}, {name: 'l5'}]
    }
  ]
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.min.js"></script>
<div ng-app='test' ng-controller='Test as $ctrl'>
  <div ng-repeat="category in :: $ctrl.categories">
    <span id="category-{{ $index }}">
      {{ :: category.name }}
    </span>

    <ul>
     <li ng-repeat="data in :: category.links"
         id="link-{{ $parent.$index }}-{{ $index }}">
       {{ :: data.name }}
     </li>
    </ul>
  </div>
</div>

您可能在您的子层周围有一些范围生成元素,例如ng-ifng-repeatng-switch。在这种情况下,您需要添加更多的$parent

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46090779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档