부모 목록 (foos)의 색인을 자식 목록 (foos.bars)의 함수 호출에 대한 인수로 사용하고 싶습니다.
누군가가 $ parent. $ index 사용을 권장하는 게시물을 찾았지만 $index
의 속성이 아닙니다 $parent
.
부모의 인덱스에 어떻게 액세스 할 수 ng-repeat
있습니까?
<div ng-repeat="f in foos">
<div>
<div ng-repeat="b in foos.bars">
<a ng-click="addSomething($parent.$index)">Add Something</a>
</div>
</div>
</div>
답변
내 예제 코드가 정확하고 문제는 실제 코드의 다른 문제였습니다. 아직도, 나는 이것의 예를 찾기가 어렵다는 것을 알고 있으므로 다른 사람이 찾고있는 경우에 대답하고 있습니다.
<div ng-repeat="f in foos">
<div>
<div ng-repeat="b in foos.bars">
<a ng-click="addSomething($parent.$index)">Add Something</a>
</div>
</div>
</div>
답변
ng-repeat docs http://docs.angularjs.org/api/ng.directive:ngRepeat 에 따르면 키 또는 배열 색인을 선택한 변수에 저장할 수 있습니다.(indexVar, valueVar) in values
그래서 당신은 쓸 수 있습니다
<div ng-repeat="(fIndex, f) in foos">
<div>
<div ng-repeat="b in foos.bars">
<a ng-click="addSomething(fIndex)">Add Something</a>
</div>
</div>
</div>
한 수준은 $ parent. $ index로 여전히 깨끗하지만 여러 부모는 문제가 발생할 수 있습니다.
참고 : $index
각 범위에서 계속 정의되며로 대체되지 않습니다 fIndex
.
답변
비슷한 질문에 대한 내 대답을 살펴보십시오 .
앨리어싱 $index
을 통해 같은 미친 물건을 쓸 필요는 없습니다 $parent.$parent.$index
.
ng-init$parent.$index
사용하는 보다 우아한 솔루션 :
<ul ng-repeat="section in sections" ng-init="sectionIndex = $index">
<li class="section_title {{section.active}}" >
{{section.name}}
</li>
<ul>
<li class="tutorial_title {{tutorial.active}}" ng-click="loadFromMenu(sectionIndex)" ng-repeat="tutorial in section.tutorials">
{{tutorial.name}}
</li>
</ul>
</ul>
답변
다음 코드로 Grand Parent Index를 제어 할 수도 있습니다.
$parent.$parent.$index
답변
use $ parent. $ index을 사용하면됩니다. 여기서 parent는 부모 반복 객체의 객체를 나타냅니다.
답변
부모가 여러 명인 경우 $ parent가 작동하지 않습니다. 대신에 init에서 부모 인덱스 변수를 정의하고 사용할 수 있습니다
<div data-ng-init="parentIndex = $index" ng-repeat="f in foos">
<div>
<div data-ng-init="childIndex = $index" ng-repeat="b in foos.bars">
<a ng-click="addSomething(parentIndex)">Add Something</a>
</div>
</div>
</div>