メニュー項目を以下の形式で表示しています。にはアイテムのdata
リストが含まれており、各アイテムにはサブアイテムがあります。selected
選択したものにクラスを適用する必要がありsubitem
、すべてのアイテムの他のすべてのサブアイテムはdeselected
. コントローラー内でこれを行う方法。HTML内にイベントを追加しng-click
、コントローラー内でクラスを切り替えてみましたが、他のアイテム内の他のすべてのサブアイテムには適用されません。詳細については、html とコントローラー コードの両方を以下に示します。
<ol ng-model="data">
<li ng-repeat="item in data" collapsed="true">
<div ng-click="toggle(this)">
<a class="btn btn-success btn-xs" ng-if="item.children && item.children.length > 0">{{item.name}}</a>
</div>
<ol ng-model="item.children" ng-class="{hidden: collapsed}">
<li ng-repeat="subItem in item.children" ng-model="subItem.name" collapsed="true" ng-click="handleClick(subItem)">
<div ng-class="{'selected-li': subItem.value, 'deselected-li': false}">
{{subItem.name}}
</div>
</li>
</ol>
</li>
</ol>
コントローラー内には、次のようなコードがあります。
$scope.toggle = function (scope) {
scope.toggle();
};
$scope.handleClick=function(subitem){
subitem.value = subitem.value ? !subitem.value: true;
}
data
UI 内で使用されるオブジェクトには、子も含まれます。どこが間違っているのか教えてください。