首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免使用ng重复+引导折叠的重复ids

如何避免使用ng重复+引导折叠的重复ids
EN

Stack Overflow用户
提问于 2015-12-14 02:35:13
回答 1查看 551关注 0票数 3

我构建了嵌套的Bootstrap .collapseng-repeat。它们有三个级别:distsadminsagents

为了使引导带折叠工作,您需要为每个.collapse不同的id。因此,我在id中添加了一个$index + 1

代码语言:javascript
复制
  <div id="dists" class="list-container">
    <div class="dist" ng-repeat="dist in dists track by $index">
      <a href="javascript:;" data-toggle="collapse" data-target="#admins-{{$index + 1}}" ng-click="updatePanels()">
      </a>
      <div id="admins-{{$index + 1}}" class="list-container collapse">
        <div class="admin" ng-repeat="admin in dist.admins track by $index">
          <a href="javascript:;" data-toggle="collapse" data-target="#agents-{{$index + 1}}" ng-click="updatePanels()">
          </a>
          <div id="agents-{{$index + 1}}" class="list-container collapse">
            <div class="agent" ng-repeat="agent in admin.agents track by $index">
          </div>
        </div>
      </div>
    </div>
  </div>

它起作用了--除非我最终得到的是重复的ids:

代码语言:javascript
复制
.dist
  #admin-1 <- repeated
    #agent-1
    #agent-2

.dist
  #admin-1 <- repeated

避免这种情况的最简单方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-14 02:40:12

对于内部循环,您可以通过$index访问外部$parent.$index。例如

代码语言:javascript
复制
<div id="admins-{{$parent.$index + 1}}-{{$index + 1}}"

对于第三级(代理),使用$parent.$parent.$index访问dist索引。

请参阅https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$parent

另一个选项(可能更简洁)是通过ng-init将索引分配给本地范围的属性。例如

代码语言:javascript
复制
<div class="dist" ng-repeat="dist in dists track by $index"
    ng-init="distIndex = $index + 1">
    <div id="admins-{{distIndex}}">
        <div class="admin" ng-repeat="admin in dist.admins track by $index"
            ng-init="adminIndex = $index + 1">
            <!-- and so on -->
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34258941

复制
相关文章

相似问题

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