に更新されません:NGリピートの要素私はNGリピートの指示項目を更新するために</strong><strong>ngのクリックで私の配列を更新しようとすると、配列の変更
<li ng-repeat="itemL1 in mainMenuL1Arr"
ng-click="selectL2menu(itemL1.name)">
<i ng-class="getClass(itemL1.icon)"></i>
</li>
selectL2menu()は上に定義コントローラ:
$scope.selectL2menu = function selectL2menu(itemL1name){
$scope.$apply(function() {
$scope.mainMenuL2CurArr = $scope.mainMenuL2Obj[itemL1name];
});
}
右第一レベルのメニュー項目をクリックした後、それが通信員要素と第2レベルのメニューブロックを明らかにすべきである(特派値を持つ配列を更新することにより、以下を参照してください)。私の配列が正常に更新 - クリックイベントがトリガされますが
<li ng-repeat="itemL2 in mainMenuL2CurArr"
class="subMenuElemBlock"
ng-class="{active: itemL2.selected}">
<a href="#">
<i ng-class="getClass(itemL2.icon)"></i>
<span>{{itemL2.name}}</span>
</a>
</li>
:ここに は、私はクリックで更新する必要がある第二階層のメニューブロックです。それにもかかわらず、ng-repeatディレクティブは第2レベルのメニューを更新しませんでした(アレイ更新のベース)。私は$ apply関数を使って試しましたが、$ apply関数を使用していません - $ applyエラーメッセージが表示されますがError:$ apply already in progress)。
なぜ、配列がng-repeatディレクティブのメニュー要素には表示されないのですか?
私は関連記事(link、link、link)を読みましたが、実際の決定は見つかりませんでした。
マーク、私は答えを見つけました[ここ](http://stackoverflow.com/questions/14453216/using-the-same-controller-on-different-elements- to-the-same-object)を参照してください - ちょうど私は必要です。問題は、2つの異なる要素で同じコントローラを使用しようとしたときです(つまり、同じ名前のng-controllerを2つの要素間でデータを誤って共有しようとしました) - 更新された配列がそれ自身のスコープにあるのはこのためです。私の問題に時間を費やしてくれてありがとう!また、フィドルのおかげで! –