ソートされていないアイテムのリストがあり、orderBy
名前の英数字でソートするために使用します。
<li class="ticker-li"
ng-repeat="ticker in tickers | orderBy:'ticker'"
ng-class="{'selected':ticker.selected}">
<div class="ticker"
ng-click="unselectAll(); ticker.selected = !ticker.selected;
selectTicker(ticker);
revealTickerOptions()">
{{ticker.ticker}}
</div>
今私のコントローラでは、これは私が現在選択された最初のアイテムのクラスをどのように設定しているかです:
var vs = $scope;
vs.tickers = data;
vs.tickers[0].selected = true;
orderBy
^アイテムがアルファ順に表示されるように を追加する必要があるまで、これは完全に機能しました。
この回答はこちらで見つかりましたが、最初のアイテムが常にクラスを持つようにロックされます。
私のコードを少し変更して、他のボタンをクリックするとそのクラスを取得することができましたが、$first
アイテムはまだクラスにとどまりました。
ng-class="{'selected':$first || ticker.selected}"
私のコントローラーでは、これは私のunselectAll関数であり、次のようには機能しません'selected':$first
:
vs.unselectAll = function() {
for (var i = 0; i < vs.tickers.length; i++) {
vs.tickers[i].selected = false;
}
};
この問題を修正するには、マークアップまたはコントローラーのコードをどのように更新する必要がありますか?