Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在angular中从2个不同的mat树访问数据?_Angular_Typescript_Tree_Angular Material - Fatal编程技术网

如何在angular中从2个不同的mat树访问数据?

如何在angular中从2个不同的mat树访问数据?,angular,typescript,tree,angular-material,Angular,Typescript,Tree,Angular Material,在我的项目中,我使用了两种不同的角度材质树 我在这里创建了stackblitz的演示: 当我尝试访问他们的数据时,我使用treeControl.dataNodes,但它只提供最新生成的树(“groceries2 and Members2 tree”)中的数据。每次我选中/取消选中某个项目时,它都会在控制台中显示dataNodes 所以我不知道该怎么办,是否有其他方法访问树数据?或者是否有一个函数将两个树都存储在内存中?在处理复选框更改时,只需将数据源添加为参数: (change)="todoLe

在我的项目中,我使用了两种不同的角度材质树

我在这里创建了stackblitz的演示:

当我尝试访问他们的数据时,我使用treeControl.dataNodes,但它只提供最新生成的树(“groceries2 and Members2 tree”)中的数据。每次我选中/取消选中某个项目时,它都会在控制台中显示dataNodes


所以我不知道该怎么办,是否有其他方法访问树数据?或者是否有一个函数将两个树都存储在内存中?

在处理复选框更改时,只需将数据源添加为参数:

(change)="todoLeafItemSelectionToggle(node, dataSourceX)"
在函数内部,只需访问数据属性:

todoLeafItemSelectionToggle(node: TodoItemFlatNode, dataSource : MatTreeFlatDataSource<TodoItemNode, TodoItemFlatNode>): void {
    console.log(dataSource.data) ;
    this.checklistSelection.toggle(node);
    this.checkAllParentsSelection(node);
    this.getParentNode(node)
  }
todoLeafItemSelectionToggle(节点:TodoItemFlatNode,数据源:MatTreeFlatDataSource):无效{
log(dataSource.data);
this.checklistSelection.toggle(节点);
此.checkAllParentsSelection(节点);
this.getParentNode(节点)
}

Hi,dataSource.dataOh是的……它可以@Z.Bolbol工作。对不起,我对这个很陌生。它给我树的名称是“TodoItemNode”,我想把它作为“TodoItemFlatNode”的数组(就像它对treeControl.dataNodes所做的那样).我不知道这是否可行。在这种情况下,只需使用两个树控件,每个树一个。谢谢,我会尝试此方法。使用两个树控件时,它可以按我的需要工作