Как быстро развернуть все таблицы PrimeNG?

Я использую PrimeNG treeTable в моем приложении Angular. И данные treeTable очень велики. Каждый предмет имеет более 200 наименований.

Вот как это выглядит:

{
    "data":
    [  
        {  
            "data":{  
                "name":"Documents",
                "size":"75kb",
                "type":"Folder"
            },
            "children":[
                {  
                    "data":{  
                        "name":"Work",
                        "size":"55kb",
                        "type":"Folder"
                    },
                    "children":[  
                        {  
                            "data":{  
                                "name":"Expenses.doc",
                                "size":"30kb",
                                "type":"Document"
                            }
                        },
                        {  
                            "data":{  
                                "name":"Resume.doc",
                                "size":"25kb",
                                "type":"Resume"
                            }
                        }
                    ]
                },
                {  
                    "data":{  
                        "name":"Home",
                        "size":"20kb",
                        "type":"Folder"
                    },
                    "children":[  
                        {  
                            "data":{  
                                "name":"Invoices",
                                "size":"20kb",
                                "type":"Text"
                            }
                        }
                    ]
                }
            ]
        },
        {  
            "data":{  
                "name":"Pictures",
                "size":"150kb",
                "type":"Folder"
            },
            "children":[  
                {  
                    "data":{  
                        "name":"barcelona.jpg",
                        "size":"90kb",
                        "type":"Picture"
                    }
                },
                {  
                    "data":{  
                        "name":"primeui.png",
                        "size":"30kb",
                        "type":"Picture"
                    }
                },
                {  
                    "data":{  
                        "name":"optimus.jpg",
                        "size":"30kb",
                        "type":"Picture"
                    }
                }
            ]
        }
    ]
}

моя функция заключается в следующем. Я хочу расширить все. Я использую рекурсию. Но на это ушло много времени.

Так у вас есть лучший алгоритм?

 expandAll(e) {
    console.log(e);
    this.expand(e.node.children);
  }


  expand(element) {
    element.forEach(element => {
      element.expanded = true;
      this.expand(element.children);
    });
  }
}

 <p-treeTable[value]="treedataList" (onNodeExpand) = "expandAll($event)"></p-treeTable>

Вот древовидная ссылка PrimeNG: https://www.primefaces.org/primeng/

0 ответов

Вы можете включить расширение как свойство элемента узла следующим образом:

{  
    "data":{  
        "name":"Home",
        "size":"20kb",
        "type":"Folder"
    },
    "children":[  
        {  
            "data":{  
                "name":"Invoices",
                "size":"20kb",
                "type":"Text"
            },
            expanded: true
        }
    ],
    expanded: true
}

Древовидная таблица использует следующий интерфейс узла:

export interface TreeNode {
    data?: any;
    children?: TreeNode[];
    leaf?: boolean;
    expanded?: boolean;
}

https://www.primefaces.org/primeng/

Другие вопросы по тегам