PrimeNG Treetable 添加节点问题
PrimeNG Treetable adding nodes issue
我使用的是 Angular (6.0.9) 和 PrimeNG (6.0.1) 的最新稳定版本。当我尝试以编程方式将子节点添加到选定节点时,它不会显示,除非我折叠然后展开选定的父节点。首先我尝试了
this.selectedNode.children.push(this.nodeToAdd);
然后我在官方文档中看到,如果“你对值进行操作,例如删除节点,添加节点或更改节点的子节点,而不是使用 push , splice create 等数组方法使用扩展运算符或类似的新数组引用”。所以我尝试了这个:
this.selectedNode.children = [...this.selectedNode.children, this.nodeToAdd];
但它会导致相同的行为。有没有人面临同样的问题,或者我做错了什么? Chrome、Firefox 和 Edge
中出现问题
我遇到过同样的问题,展开运算符对我也不起作用,但幸运的是我找到了解决方法here(这里他们试图刷新 prime-ng 数据表)
这不是直接的解决方案,但它可以在组件中的错误(我相信如此)未修复时为您节省时间。
这是来自 original answer 的代码,针对 treetable 稍作更改:
visible: boolean = true;
updateVisibility(): void {
this.visible = false;
setTimeout(() => this.visible = true, 0);
}
<button (click)="updateVisibility()">
<p-treeTable *ngIf="visible"></p-treeTable>
P.S。我使用 Angular 5,但希望它能有所帮助
我从 PrimeNG 5 转移到 6 后遇到了同样的问题。Artem 的解决方案有效,但也导致树表闪烁。
我找到了另一个解决方案 - 只需更改根节点的引用,这将刷新树。添加/删除节点后添加此行:
this.roots = [...this.roots]; // change "roots" to your variable name
我使用的是 Angular (6.0.9) 和 PrimeNG (6.0.1) 的最新稳定版本。当我尝试以编程方式将子节点添加到选定节点时,它不会显示,除非我折叠然后展开选定的父节点。首先我尝试了
this.selectedNode.children.push(this.nodeToAdd);
然后我在官方文档中看到,如果“你对值进行操作,例如删除节点,添加节点或更改节点的子节点,而不是使用 push , splice create 等数组方法使用扩展运算符或类似的新数组引用”。所以我尝试了这个:
this.selectedNode.children = [...this.selectedNode.children, this.nodeToAdd];
但它会导致相同的行为。有没有人面临同样的问题,或者我做错了什么? Chrome、Firefox 和 Edge
中出现问题我遇到过同样的问题,展开运算符对我也不起作用,但幸运的是我找到了解决方法here(这里他们试图刷新 prime-ng 数据表) 这不是直接的解决方案,但它可以在组件中的错误(我相信如此)未修复时为您节省时间。
这是来自 original answer 的代码,针对 treetable 稍作更改:
visible: boolean = true;
updateVisibility(): void {
this.visible = false;
setTimeout(() => this.visible = true, 0);
}
<button (click)="updateVisibility()">
<p-treeTable *ngIf="visible"></p-treeTable>
P.S。我使用 Angular 5,但希望它能有所帮助
我从 PrimeNG 5 转移到 6 后遇到了同样的问题。Artem 的解决方案有效,但也导致树表闪烁。
我找到了另一个解决方案 - 只需更改根节点的引用,这将刷新树。添加/删除节点后添加此行:
this.roots = [...this.roots]; // change "roots" to your variable name