子リスト(foos.bars)の関数呼び出しへの引数として、親リスト(foos)のインデックスを使用したいです。
誰かが$ 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>
1つ上のレベルはまだ$ parent。$ indexでかなりきれいですが、いくつかの親が上がると、物事が面倒になることがあります。
注:$index
は各スコープで引き続き定義されます。fIndex
に置き換えられることはありません。
を見てみましょう 私の同じような質問に対する答え 。$index
をエイリアスすることで、$parent.$parent.$index
のような狂気のものを書く必要はありません。
$parent.$index
が使っているより洗練された方法--- ng-init :
<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>
次のコードで祖父母のインデックスを制御することもできます。
$parent.$parent.$index
あなたは単に使用することができます使用する$ parent。$ index。ここでparentは親の繰り返しオブジェクトのオブジェクトを表します。