访问Angular CDK树中的父节点

问题描述

我正在使用带有嵌套节点的CDK树来显示有向无环图(DAG)结构的一部分。鉴于我的数据结构是图形而不是树,因此我拥有可以是多个节点的子节点的节点。当我单击一个节点时,我希望能够确定该节点在哪个上下文中,即谁是其父节点。我不能仅仅将node对象传递给click事件并遍历我的数据结构,因为关于我单击节点的 context (父级)的信息不是图的一部分,而是图形表示。

我认为最好的解决方案是在构建类似于以下内容的树时将 context 传递给每个子节点:

<cdk-tree [dataSource]="dataSource" [treeControl]="treeControl">
  <!-- Leaf nodes -->
  <cdk-nested-tree-node *cdkTreeNodeDef="let node" class="example-tree-node" click="nodeClicked(node,context)">
    {{node.name}}
  </cdk-nested-tree-node>
  <!-- Expandable nodes -->
  <cdk-nested-tree-node *cdkTreeNodeDef="let node; when: hasChild" click="nodeClicked(node,context)">
    {{node.name}}
    <div [class.example-tree-invisible]="!treeControl.isExpanded(node)">
      <ng-container cdkTreeNodeOutlet let-context="node"></ng-container>
    </div>
  </cdk-nested-tree-node>
</cdk-tree>

不幸的是,Angular / CDK不支持上述方法。我还没有找到任何使用CDK树来访问节点父级的方法,以能够确定在哪个上下文中单击了节点。

使用带有嵌套节点的CDK Tree实现真的不可能吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...