0
divを選択するとアクティブなクラスがdivに設定されましたが、今度は新しいdivを選択するたびに以前のアクティブなクラスを削除します。新しいdivを選択すると、前のdivからアクティブなクラスを削除します
ここでは、以前に選択したdivからアクティブなクラスを削除する方法がわかりません。ツリー構造を生成するためのコードの
出典:http://jsfiddle.net/brendanowen/uXbn6/8/
テンプレート:
<table ng-repeat="data in tree track by $index">
<tbody>
<div ng-click="setDivActive(data)" ng-class="{'active': data.selected}"></div> //This div will be selected
</tbody>
</table>
<script type="text/ng-template" id="tree_item_renderer.html">
<button ng-click="add(data)">Add node</button>
<table ng-repeat="data in data.nodes" id="tree_item_renderer.html">
<tbody>
<div ng-click="setDivActive(data)" ng-class="{'active': data.selected}"></div> //This div will be selected
</tbody>
</table>
</script>
コントローラー:
$scope.tree = [{name: "Node", nodes: [],selected:false}];
$scope.addNode = function (data) {
var post = data.nodes.length + 1;
var newName = data.name + '-' + post;
data.nodes.push({ name: newName, nodes: [],selected:false });
};
$scope.setDivActive= function (data) {
data.selected = true;
};
ネストされた構造では機能しません。 –
あなたのネストされた構造体がどのように動作するのか分かりませんが、再帰的な関数を作成する必要があります –
入れ子構造の再帰的な答えが更新されました。あなたの木構造は見えるはずです –