我想以编程方式将childNodes添加到TreeTable。添加父节点没有问题,如:
var parentNode: TreeNode = { data: {
'col1': 'aaa',
'col2': 'aaa',
}};
this.treeTableModel.push(parentNode);
但是当我试图这样做时:
parentNode.children.push(childNode);
儿童未定义?
实现此目标的最佳方式是什么?
答案 0 :(得分:1)
首先,您可以在此处查看TreeNode
api:https://github.com/primefaces/primeng/blob/bb1792eac98c7beb9d18ff68bed99408ad650108/components/common/api.ts
第二,你像这样初始化了parentNode
var parentNode: TreeNode = { data: {
'col1': 'aaa',
'col2': 'aaa',
}};
parentNode
此时没有属性children
。你必须添加它。 children
是一个TreeNode
数组:TreeNode[]
所以您可以做的是:
var parentNode: TreeNode =
{
data: {
'col1': 'aaa',
'col2': 'aaa',
},
children:[];
};
现在children
被初始化为空数组,您可以push
到它:
this.treeTableModel.push(parentNode);
答案 1 :(得分:0)
按照艾哈迈德(Ahmed)的帖子,将TreeNode作为父级或带有孩子/父级的父级推送到树节点后,您可以刷新它,但是这样做。
this.treeTableModel = [... this.treeTableModel];
TreeTable数据反映了您刚刚推送到TreeNode中的内容。
答案 2 :(得分:0)
您需要向父级添加空子级,然后向子级添加(推送)数据
var parentNode: TreeNode = {
data: {
'col1': 'aaa',
'col2': 'aaa',
},
children: [{data: {}}]
};
this.treeTableModel.push(parentNode);
向孩子添加(推送)数据
在onNodeExpand
功能上
onNodeExpand(e: event) {
e['node']['children'] = childData;
this.treeTableModel = [...this.treeTableModel];
}