[英]how to create 3d dom in javascript using angular and ng-repeat?
What I want to achieve is to create a 3 level in depth with angular and ng-repeat or ng-option but I am losing the track of $index because the second and third level are pointing to the same $index from level 1 not their own level. 我想要实现的是用角度和ng-repeat或ng-option创建3级深度,但是我丢失了$ index的轨迹,因为第二级和第三级指向的是第一级的同一$ index而不是它们的自己的水平。 Accessing to the right index is important.
访问正确的索引很重要。
var A = [[[1],[2]],[[3],[4]],[[5],[6]]]
<ul>
<li ng-repeat="a in A track by indexA" ng-click="myFnA(indexA)">
<ul>
<li ng-repeat="b in B track by indexB" ng-click="myFnB(indexB)">
<ul>
<li ng-repeat="c in C track by indexC" ng-click="myFnC(indexC)">
</li>
</ul>
</li>
</ul>
</li>
</ul>
Use the ng-init directive to save indexes: 使用ng-init指令保存索引:
Also be sure that the nested ng-repeat
uses the previous ng-repeat
variable: 另外,请确保嵌套的
ng-repeat
使用先前的ng-repeat
变量:
ng-repeat="itemA in A" ng-init="indexA=$index"
ng-repeat="itemB in itemA" ng-init="indexB=$index"
ng-repeat="c in itemB"
angular.module("myApp",[]); angular.module("myApp").controller("myVm", function($scope) { $scope.A = [[[1],[2]],[[3],[4]],[[5],[6]]]; });
<script src="//unpkg.com/angular/angular.js"></script> <div ng-app="myApp" ng-controller="myVm"> <h1>Nested ng-repeat Demo</h1> <ul> <li ng-repeat="itemA in A" ng-init="indexA=$index"> {{indexA}}:{{itemA}} <ul> <li ng-repeat="itemB in itemA" ng-init="indexB=$index"> {{indexB}}:{{itemB}} <ul> <li ng-repeat="c in itemB track by $index"> A[{{indexA}}][{{indexB}}][{{$index}}]={{c}} </li> </ul> </li> </ul> </li> </ul> </div>
you can assign index to variable using ng-init
您可以使用
ng-init
将索引分配给变量
<ul>
<li ng-repeat="a in A track by $index" ng-init="indexA = $index"> <!--indexA is the index of a-->
<ul>
<li ng-repeat="b in B track by $index" ng-init="indexB = $index"><!--indexB is the index of b-->
<ul>
<li ng-repeat="c in C track by $index" ng-init="indexC = $index"> <!--indexC is the index of c-->
{{indexA}}
{{indexB}}
{{indexC}}
</li>
</ul>
</li>
</ul>
</li>
</ul>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.