首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular-tree-component如何通过复选框选择捕获选定的节点

Angular-tree-component如何通过复选框选择捕获选定的节点
EN

Stack Overflow用户
提问于 2018-05-01 06:55:44
回答 3查看 10.8K关注 0票数 4

我正在使用angular- tree -component生成一个带有复选框选项的树。HTML

代码语言:javascript
复制
<tree-root [nodes]="nodes" [options]="options">
      </tree-root>

打字:

代码语言:javascript
复制
import { ITreeOptions } from 'angular-tree-component';
import { Component } from '@angular/core';

export class myComponent {
nodes = [
    {
      name: 'root1',
      children: [
        { name: 'root1_child1' },
        {
          name: 'root1_child2', children: [
            { name: 'grand_child1' },
            { name: 'grand_child2' }
          ]
        }
      ]
    },
    {
      name: 'root2',
      children: [
        { name: 'root2_child1' },
        {
          name: 'root2_child2', children: [
            { name: 'grand_child1' },
            { name: 'grand_child2' }
          ]
        }
      ]
    }
  ];

  options: ITreeOptions = {
    useCheckbox: true
  };

  optionsDisabled: ITreeOptions = {
    useCheckbox: true,
    useTriState: false
  };

因此,我可以选择树节点(包括子节点),但无法找到捕获所有选定(选中)节点并显示在另一个框中的方法。

EN

回答 3

Stack Overflow用户

发布于 2018-05-25 03:10:22

您可以使用event.treeModel.selectedLeafNodeIds获取树中选中的节点,

示例:

代码语言:javascript
复制
<tree-root [nodes]="treeNode" (select)="onSelect($event)"
    (deselect)="onDeselect($event)" [options]="options"></tree-root>

this.selectedTreeList = Object.entries(event.treeModel.selectedLeafNodeIds)
     .filter(([key, value]) => {
            return (value === true);
      }).map((node) => node[0]);
票数 5
EN

Stack Overflow用户

发布于 2019-04-05 18:09:09

参考上面的答案来获取你可以使用的对象

代码语言:javascript
复制
  Object.entries(this.treeModel.selectedLeafNodeIds)
  .filter(([key, value]) => {
    return (value === true);
  })
  .map((id) => {
    let node = this.treeModel.getNodeById(id[0]);
    return node;
  });
票数 3
EN

Stack Overflow用户

发布于 2020-06-16 14:59:00

您可以使用(选择)和(取消选择)事件来执行此操作。下面是一个小示例。

代码语言:javascript
复制
onSelect(event) {
    try {

      let pushdata: any = [];
      pushdata.push(event.node.data);

      console.log(this.TreeViewData);
    } catch (e) {
      console.log(e.message)
    }
  }

与取消选择相同,即使您可以捕获取消选择的节点

代码语言:javascript
复制
ondeSelect(event) {
        try {

          let pushdata: any = [];
          pushdata.push(event.node.data);

          console.log(this.TreeViewData);
        } catch (e) {
          console.log(e.message)
        }
      }

Event.node.data将返回绑定的所有属性的数组列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50109258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档