我正在使用angular- tree -component生成一个带有复选框选项的树。HTML
<tree-root [nodes]="nodes" [options]="options">
</tree-root>打字:
import { ITreeOptions } from 'angular-tree-component';
import { Component } from '@angular/core';
export class myComponent {
nodes = [
{
name: 'root1',
children: [
{ name: 'root1_child1' },
{
name: 'root1_child2', children: [
{ name: 'grand_child1' },
{ name: 'grand_child2' }
]
}
]
},
{
name: 'root2',
children: [
{ name: 'root2_child1' },
{
name: 'root2_child2', children: [
{ name: 'grand_child1' },
{ name: 'grand_child2' }
]
}
]
}
];
options: ITreeOptions = {
useCheckbox: true
};
optionsDisabled: ITreeOptions = {
useCheckbox: true,
useTriState: false
};因此,我可以选择树节点(包括子节点),但无法找到捕获所有选定(选中)节点并显示在另一个框中的方法。

发布于 2018-05-25 03:10:22
您可以使用event.treeModel.selectedLeafNodeIds获取树中选中的节点,
示例:
<tree-root [nodes]="treeNode" (select)="onSelect($event)"
(deselect)="onDeselect($event)" [options]="options"></tree-root>
this.selectedTreeList = Object.entries(event.treeModel.selectedLeafNodeIds)
.filter(([key, value]) => {
return (value === true);
}).map((node) => node[0]);发布于 2019-04-05 18:09:09
参考上面的答案来获取你可以使用的对象
Object.entries(this.treeModel.selectedLeafNodeIds)
.filter(([key, value]) => {
return (value === true);
})
.map((id) => {
let node = this.treeModel.getNodeById(id[0]);
return node;
});发布于 2020-06-16 14:59:00
您可以使用(选择)和(取消选择)事件来执行此操作。下面是一个小示例。
onSelect(event) {
try {
let pushdata: any = [];
pushdata.push(event.node.data);
console.log(this.TreeViewData);
} catch (e) {
console.log(e.message)
}
}与取消选择相同,即使您可以捕获取消选择的节点
ondeSelect(event) {
try {
let pushdata: any = [];
pushdata.push(event.node.data);
console.log(this.TreeViewData);
} catch (e) {
console.log(e.message)
}
}Event.node.data将返回绑定的所有属性的数组列表。
https://stackoverflow.com/questions/50109258
复制相似问题