以编程方式将 children 添加到 PrimeNg TreeTable
Adding children to PrimeNg TreeTable programmatically
我想以编程方式将子节点添加到 TreeTable。添加 parent-nodes 没有问题,例如:
var parentNode: TreeNode = { data: {
'col1': 'aaa',
'col2': 'aaa',
}};
this.treeTableModel.push(parentNode);
但是当我尝试这样做时:
parentNode.children.push(childNode);
Children 未定义?
实现它的最佳方法是什么?
首先,你可以看看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);
根据 Ahmed 的 post,在使用 child/ren 作为父节点或父节点推送到 TreeNode 后,您可以刷新它,但要执行此操作。
this.treeTableModel = [...this.treeTableModel];
TreeTable 数据反映了您刚刚推入 TreeNode 的内容。
您需要将空 children 添加到 parent,然后将(推送)数据添加到 children
var parentNode: TreeNode = {
data: {
'col1': 'aaa',
'col2': 'aaa',
},
children: [{data: {}}]
};
this.treeTableModel.push(parentNode);
添加(推送)数据到 children
在 onNodeExpand
函数中
onNodeExpand(e: event) {
e['node']['children'] = childData;
this.treeTableModel = [...this.treeTableModel];
}
我想以编程方式将子节点添加到 TreeTable。添加 parent-nodes 没有问题,例如:
var parentNode: TreeNode = { data: {
'col1': 'aaa',
'col2': 'aaa',
}};
this.treeTableModel.push(parentNode);
但是当我尝试这样做时:
parentNode.children.push(childNode);
Children 未定义?
实现它的最佳方法是什么?
首先,你可以看看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);
根据 Ahmed 的 post,在使用 child/ren 作为父节点或父节点推送到 TreeNode 后,您可以刷新它,但要执行此操作。
this.treeTableModel = [...this.treeTableModel];
TreeTable 数据反映了您刚刚推入 TreeNode 的内容。
您需要将空 children 添加到 parent,然后将(推送)数据添加到 children
var parentNode: TreeNode = {
data: {
'col1': 'aaa',
'col2': 'aaa',
},
children: [{data: {}}]
};
this.treeTableModel.push(parentNode);
添加(推送)数据到 children
在 onNodeExpand
函数中
onNodeExpand(e: event) {
e['node']['children'] = childData;
this.treeTableModel = [...this.treeTableModel];
}