我有一个Angular材质组件,正在尝试使用新数据动态更新。
@ViewChild('tree') tree: MatTree<any>;
...
treeControl: NestedTreeControl<any>;
dataSource: MatTreeNestedDataSource<any>;
...
// This does not work
this.tree.renderNodeChanges(newData);
Run Code Online (Sandbox Code Playgroud)
我可以很好地更改数据源数据,它会反映在日志中,但是永远不会重新渲染树this.dataSource.data = newData;
这些数据是从可观察的对象中检索的,每次发生更改时,我都会通过它。
<mat-tree [dataSource]="dataSource"
[treeControl]="treeControl"
#tree
class="release-notes-tree">
...
</mat-tree>
Run Code Online (Sandbox Code Playgroud)
仅传递全新数据并更新树的最简单方法是什么?
我对此进行了一些研究,这导致了角度材料 github 上的 2 个新问题。这里发生的事情真的不是很明显,我认为这是一个错误。
触发 ngchange 并更新 DOM
data = this.nestedDataSource.data
this.nestedDataSource.data = null;
this.nestedDataSource.data = data;
Run Code Online (Sandbox Code Playgroud)
不触发 ngchange
this.dataSource.data = newData
Run Code Online (Sandbox Code Playgroud)
我还没有尝试使用它,但据说这应该有效。不知道为什么它不适合你。
<mat-tree #treeSelector></mat-tree>
@ViewChild('treeSelector') tree: matTree;
this.tree.renderNodeChanges()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5677 次 |
| 最近记录: |