Элемент управления Material tree не отображает асинхронные данные из службы http

#angular #angular-material #treeview #angular6 #angular-material2

#angular #angular-material #просмотр дерева #angular6 #angular-material2

Вопрос:

Я столкнулся с проблемой с элементом управления деревом материалов в Angular 6. Когда я использую статические данные и возвращаю их как наблюдаемые с помощью оператора RxJS ‘from’, это работает нормально. Однако у меня есть веб-API, возвращающий аналогичные данные модели, которые я вызываю с помощью http client get и возвращает JSON. Однако в этом случае элемент управления деревом не отображается. Возможно, поскольку ранее я использовал статические данные, они возвращались быстро, а с асинхронными данными пользовательский интерфейс привязывается до фактического возврата данных.

 ngOnInit:void{
 this.nestedTreeControl = new NestedTreeControl<any>(this._getChildren);
    this.nestedDataSource = new MatTreeNestedDataSource();
    this.dataChange.subscribe(data => this.nestedDataSource.data = data);
    this.dataChange.next(this.treeData);
    this.dataService.getFolders().subscribe(data => {
      this.treeData.push(data);
    })
}
  

Где я ошибаюсь, может кто-нибудь, пожалуйста, указать проблему?

Ответ №1:

Я не публиковал после обновления TreeData.

 this.dataService.getFolders().subscribe(data => {
      this.treeData.push(data);
      this.dataChange.next(this.treeData);
})