gpt4 book ai didi

javascript - 如何使用 ng-repeat + bootstrap collapse 避免重复 id

转载 作者:行者123 更新时间:2023-11-29 15:31:46 27 4
gpt4 key购买 nike

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

为了使 Bootstrap 折叠正常工作,您需要为每个 .collapse 使用不同的 ID。所以我在 id 中添加了一个 $index + 1:

  <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>

它有效——除了我最终得到重复的 id:

.dist
#admin-1 <- repeated
#agent-1
#agent-2

.dist
#admin-1 <- repeated

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

最佳答案

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

<div id="admins-{{$parent.$index + 1}}-{{$index + 1}}"

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

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


另一种可能更简洁的选择是通过 ng-init 将索引分配给局部范围的属性。例如

<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 -->

关于javascript - 如何使用 ng-repeat + bootstrap collapse 避免重复 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34258941/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com