Как программно выбрать узлы дерева материалов с помощью SelectionModel? - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть дерево с флажками (давайте воспользуемся примером материала здесь) .Я хотел бы, чтобы фруктовые узлы начали проверяться.Как проверить эти узлы?

Я вижу, что SelectionModel имеет метод select(), который в примере передается узлу.Но в этом примере данные, из которых состоит дерево, представляют собой массив TodoItemNode, а SelectionModel содержит TodoItemFlatNode.Метод transformer в этом примере может «сгладить» мой узел (т. Е. Преобразовать TodoItemNode в TodoItemFlatNode), но это вернет новый экземпляр.

Как программно установить флажки для дерева матовсоответствовать моим данным?

1 Ответ

0 голосов
/ 29 ноября 2018

Чтобы предварительно выбрать узел фруктов, реализуйте следующее в ngAfterViewInit для класса TreeChecklistExample в примере с прикрепленным стеком.

  • Это будет циклически проходить по dataNodes в treeControl
  • Если item == 'Fruits' выбрать узел и развернуть
  • Также, если item == 'Groceries'разверните узел, поскольку он является родителем фруктов.

    ngAfterViewInit() {
        for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
          if (this.treeControl.dataNodes[i].item == 'Fruits') {
            this.todoItemSelectionToggle(this.treeControl.dataNodes[i]);
            this.treeControl.expand(this.treeControl.dataNodes[i])
          }
          if (this.treeControl.dataNodes[i].item == 'Groceries') {
            this.treeControl.expand(this.treeControl.dataNodes[i])
          }
        }
      }
    

Stackblitz

https://stackblitz.com/edit/angular-j2nf2r?embed=1&file=app/tree-checklist-example.html


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...