2

メニュー項目を以下の形式で表示しています。にはアイテムの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; 
}

dataUI 内で使用されるオブジェクトには、子も含まれます。どこが間違っているのか教えてください。

4

1 に答える 1