Angular.js: $ parent. $ index потСрян ΠΏΡ€ΠΈ использовании ng-if

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 10 сСнт. 2015  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: angular/angular.js

Мой HTML-код

 <div>
 <ul>
 <li ng-repeat = 'parentItem Π² arr1'>
 <div ng-repeat = 'childItem Π² arr2'>
 {{$ parent. $ index}}, {{$ index}}
 </div>
 </li>
 </ul>
 </div>

Код Javascript Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°

 $ scope.arr1 = [1,2];
 $ scope.arr2 = [1,2];

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π΄Π°Π΅Ρ‚ ΠΌΠ½Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

 0, 0
 0, 1
 1, 0,
 1, 1

Но Ссли я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ng-if="true" Π² Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌ Ρ†ΠΈΠΊΠ»Π΅, это Π΄Π°Π΅Ρ‚ ΠΌΠ½Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚.

 <div>
 <ul>
 <li ng-repeat = 'parentItem Π² arr1'>
 <div ng-repeat = 'childItem in arr2' ng-if = "true">
 {{$ parent. $ index}}, {{$ index}}
 </div>
 </li>
 </ul>
 </div>
 0, 0
 1, 1
 0, 0
 1, 1

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Он мСняСт Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ индСкс Π½Π° Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ индСкс

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΈΡΠΏΡ€Π°Π²ΡŒΡ‚Π΅ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π­Ρ‚ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Angular. Π­Ρ‚ΠΎ происходит ( ΠΊΠ°ΠΊ описано ngIf создаСт Π½ΠΎΠ²ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, поэтому $parent Π½Π΅ относится ΠΊ области внСшнСй ngRepeat .

Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ использованиС $parent здСсь Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ / Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ngInit для создания псСвдонима Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ индСкса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

<li ng-repeat="parentItem in arr1" ng-init="parentIdx = $index">
  <div ng-repeat="childItem in arr2" ng-if="true">
    {{ parentIdx }} , {{ $index }}
  </div>
</li>

Π”Π΅ΠΌΠΎ

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π­Ρ‚ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Angular. Π­Ρ‚ΠΎ происходит ( ΠΊΠ°ΠΊ описано ngIf создаСт Π½ΠΎΠ²ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, поэтому $parent Π½Π΅ относится ΠΊ области внСшнСй ngRepeat .

Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ использованиС $parent здСсь Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ / Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ngInit для создания псСвдонима Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ индСкса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

<li ng-repeat="parentItem in arr1" ng-init="parentIdx = $index">
  <div ng-repeat="childItem in arr2" ng-if="true">
    {{ parentIdx }} , {{ $index }}
  </div>
</li>

Π”Π΅ΠΌΠΎ

ΠšΡΡ‚Π°Ρ‚ΠΈ, это ΠΎΠ±Ρ‰ΠΈΠΉ вопрос слуТбы ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. Π’Π°ΠΊΠΈΠ΅ вопросы Π»ΡƒΡ‡ΡˆΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ°Π½Π°Π»Ρ‹ .
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ GitHub Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈ запросов Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Бпасибо,

Π― ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ng-init

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ