2017-01-10 14 views
0

では動作しません。私は私のアプリでこれを持ってNG-クリック:私はアイテムをクリックしたとき

<li ng-repeat="name in tabs track by $index" ng-class="{selected: tab==$index}" ng-click="tab = $index">{{name}}</li> 

をし、それが動作しない、選択したクラスが有効になっています(各Liが、私はこのクラスを持っていると私は他のLiをクリックしたときに、それが除去されていないのクリック)とタブが、私はこれを使用する場合、それが動作し、更新されていません:ng-click="tab = $index"が動作しない理由を

<li ng-repeat="name in tabs track by $index" ng-class="{selected: tab==$index}" ng-click="switchTab($index)">{{name}}</li> 

scope.switchTab = function(index) { 
    scope.tab = index; 
}; 

なぜこの出来事は、ありますか?

+0

コントローラ関数内で 'index'引数を取得できましたか? –

+0

@DhavalMarthakそれは 'scope.tab = index; 'であるべきtypoでした – jcubic

答えて

5

あなたは、に変更タイプミスを持っている:あなたの関数内のパラメータがindexですが、あなたも$indexを使用

scope.switchTab = function(index) { 
    scope.tab = index; 
}; 

を。

編集: それが機能していない直接割り当てで動作する理由、ng-repeatは新しいスコープを作成することです。あなたがするとき: tab = $indexあなたはあなたが考える$scopeのものを更新するのではなく、新しいスコープで新しい変数を作成します。

さらに詳しい情報については、this questionを参照してください。

+0

私はコードを追加したときにタイプミスでした。質問は' ng-click = "tab = $ index" switchTabが動作しています。 – jcubic

+0

@jcubic私は見る、編集を参照してください。 –

関連する問題