如何避免重复的id与ng重复+引导崩溃
How to avoid repeated ids with ng-repeat + bootstrap collapse
我构建了嵌套的Bootstrap .collapse
和ng-repeat
。它们有三个级别:dists
、admins
和agents
。
为了使引导折叠工作,您需要为每个.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}}"
对于第三级(代理),使用$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 -->
相关文章:
- 角度:在ng重复上切换图像
- 如何将函数包装在函数中以避免代码重复
- AngularJS:ng之后,重复$scope值未按预期更新
- Ajax聊天消息重复而不仅仅是更新
- 使用每次都不同的transclude重复指令
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 在javascript中搜索具有重复值的两个数组中的匹配值
- 角度的项目列表 ng 重复,ng 单击显示全宽描述
- 防止ng重复中的重复值(AngularJS)
- Meteor JS中代码的重复使用部分
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 字母计数:返回重复字母数最多的第一个单词
- location.reload(true)崩溃浏览器选项卡
- 在ng重复循环中显示来自不同文件夹的图像
- 对象上错误的javascript重复
- Angular ngRepeat:重复错误(尽管没有重复的密钥)
- 引导程序崩溃一次只能看到一个
- ZombieJS:从 for 循环重复调用时间歇性崩溃
- 如何避免重复的id与ng重复+引导崩溃
- 发生重复注册时,节点快车服务器崩溃