Как получить доступ к данным из двух разных мат-деревьев в угловых? - PullRequest
0 голосов
/ 06 ноября 2019

В моем проекте я использую 2 разных дерева из углового материала.

Я создал демонстрацию стекового блика здесь: https://stackblitz.com/edit/angular-wvbg5j.

Когда я пытаюсь получить доступ к их данным, Я использую treeControl.dataNodes, но он дает мне только данные из последнего сгенерированного дерева ("groceries2 и памятка2 дерево"). Он отображает dataNodes в консоли каждый раз, когда я проверяю / снимаю отметку с элемента.

Поэтому я не надеваюНе знаете, что делать, есть ли другой способ доступа к данным дерева? Или есть функция, которая хранит оба дерева в памяти?

1 Ответ

0 голосов
/ 06 ноября 2019

Просто добавьте источник данных в качестве аргумента при обработке изменения флажка:

(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)
  }
...