如何使用嵌套数据扩展角度材料树中的嵌套节点?

问题描述

我在带有嵌套对象数据数组的 angular 7 应用程序中使用 mat 树。 我想在用户对嵌套部分数据进行一些更改后展开嵌套部分。

我有大量对象,我可以展开一级树节点,但无法展开嵌套部分。

例如,我有 9.2.1.2 节号,所以在这种情况下,我必须扩展节号为 9、9.2、9.2.1 和 9.2.1.2 的节。 怎么做?下面是来自数组的示例对象

{
    "sectionNum": 6,"title": "ETHICS AND REGULATORY APPRoval","csrSectionNum": "5","templateDTO": {
      "sectionNum": 89,"parent": "0","sequence": 1,"active": 1,"subReportTypeId": 2,"sectionType": "3","isHighlightSection": 0,"children": [],"contents": null
    },"isDefault": 1,"studyId": 2,"version": 0,"userId": 0,"createdDate": "2021-04-03 10:03:18","sectionIdentifiedPercentage": "100","isBookmarked": false,"children": [
      {
        "sectionNum": 7,"title": "INDEPENDENT ETHICS COMMITTEE APPRoval","csrSectionNum": "5.1","templateDTO": {
          "sectionNum": 90,"parent": "5","sectionType": "4","contents": null
        },"contents": null,"sfdtContent": null,"keywordInput": false
      },{
        "sectionNum": 8,"title": "ETHICAL CONDUCT OF THE STUDY","csrSectionNum": "5.2","templateDTO": {
          "sectionNum": 91,"sequence": 2,{
        "sectionNum": 9,"title": "PATIENT informatION AND CONSENT","csrSectionNum": "5.3","templateDTO": {
          "sectionNum": 92,"sequence": 3,"sectionType": "0","keywordInput": false
      }
    ],"keywordInput": false
  },

解决方法

如果您使用 NestedTreeControl,您可以在此控件上调用 expandDescendants 函数以递归地扩展以给定数据节点为根的子树。

treeControl = new NestedTreeControl<any> (node => node.children);
dataSource = new ArrayDataSource(TREE_DATA);

ngOnInit() {
   this.treeControl.dataNodes = TREE_DATA
   this.treeControl.expandDescendants(TREE_DATA[1] /* for example */ )
}

相关问答

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