当前位置: 首页 > news >正文

NG-ZORRO中tree组件的getCheckedNodeList怎么使用

在 NG-ZORRO(Ant Design for Angular) 的 Tree 组件 中,getCheckedNodeList 方法用于获取当前选中的节点列表(包括半选状态节点)。以下是具体用法和示例:

  1. 基本用法
    首先,确保你已通过 ViewChild 获取了 Tree 组件的实例(通常是 NzTreeComponent 或 NzTreeSelectComponent)。

模板中定义 Tree

<nz-tree
  #tree
  [nzData]="nodes"
  nzCheckable
  [(nzCheckedKeys)]="checkedKeys"
  (nzCheckBoxChange)="onCheckboxChange($event)"
></nz-tree>

组件中调用方法

import { Component, ViewChild } from '@angular/core';
import { NzTreeComponent, NzTreeNode } from 'ng-zorro-antd/tree';

@Component({
  selector: 'app-your-component',
  templateUrl: './your-component.html'
})
export class YourComponent {
  @ViewChild('tree') tree!: NzTreeComponent; // 获取 Tree 实例
  nodes: NzTreeNode[] = [ /* 你的树节点数据 */ ];
  checkedKeys: string[] = []; // 选中的节点 key 数组

  // 获取所有选中的节点(包括半选节点)
  getCheckedNodes(): void {
    const checkedNodes: NzTreeNode[] = this.tree.getCheckedNodeList();
    console.log('Checked Nodes:', checkedNodes);
  }

  // 如果需要仅获取全选节点(忽略半选节点)
  getFullyCheckedNodes(): void {
    const fullyCheckedNodes: NzTreeNode[] = this.tree.getCheckedNodeList(true);
    console.log('Fully Checked Nodes:', fullyCheckedNodes);
  }
}
  1. 方法参数说明
    getCheckedNodeList(includeHalfChecked?: boolean): NzTreeNode[]

includeHalfChecked(可选,默认 false):

false:仅返回 全选节点(用户明确勾选的节点)。

true:返回 全选 + 半选节点(例如父节点因部分子节点被选中而半选)。

  1. 关键注意事项
    节点数据格式

确保 nzData 中的节点数据正确绑定,且每个节点有唯一的 key。例如:

nodes = [
  new NzTreeNode({
    title: 'Parent',
    key: '1',
    children: [
      { title: 'Child 1', key: '1-1' },
      { title: 'Child 2', key: '1-2' }
    ]
  })
];

动态更新问题

如果节点是异步加载的,调用 getCheckedNodeList 前需确保数据已渲染(可在 setTimeout 或数据加载完成的回调中调用)。

与 nzCheckedKeys 的区别

nzCheckedKeys 是双向绑定的选中 key 数组,而 getCheckedNodeList 返回的是完整的节点对象(包含 title、children 等属性)。

  1. 完整示例
// 模板
<button (click)="logCheckedNodes()">打印选中节点</button>

// 组件
logCheckedNodes(): void {
  const allChecked = this.tree.getCheckedNodeList(); // 全选 + 半选
  const fullyChecked = this.tree.getCheckedNodeList(true); // 仅全选
  console.log('All Checked Nodes:', allChecked);
  console.log('Fully Checked Nodes:', fullyChecked);
}

通过以上方法,你可以轻松获取 Tree 组件的选中状态。如果需要进一步处理节点数据,可以通过 NzTreeNode 的 API(如 getParentNode()、getChildren() 等)操作节点关系。

http://www.dtcms.com/a/98376.html

相关文章:

  • 26考研——排序_选择排序_选择排序的基本思想 简单选择排序(8)
  • 每天一篇目标检测文献(六)——Part One
  • 小林coding-12道Spring面试题
  • 自然语言处理(17:(第五章2.)梯度消失和LSTM(详细拆解))
  • WebSocket通信的握手阶段
  • 基于 WebAssembly 的 Game of Life 交互实现
  • ArrayList和LinkedList比较
  • 使用 Python 进行链上数据监控:让区块链数据触手可及
  • 深入解析音频:格式、同步及封装容器
  • SQL Server:sys.dm_hadr_physical_seeding_stats
  • 2023第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组(真题题解)(C++/Java题解)
  • [项目]基于FreeRTOS的STM32四轴飞行器: 十六.激光测距定高功能
  • 【Web前端】解锁JavaScript中Web存储API的秘密
  • LoRA 模型微调框架核心原理及实现步骤
  • 第7期:生成式AI伦理边界——当技术撞上道德与法律的防火墙
  • GHCTF-web-wp
  • AI人工智能-Jupyter NotbookPycharm:Py开发
  • 电池的知识
  • MySQL 语句
  • 洛谷题单1-P5708 【深基2.习2】三角形面积-python-流程图重构
  • 【数据结构与算法】Java描述:第六节:排序算法(直接插入排序,希尔排序)
  • 3.29-4nmon
  • Python包管理完全指南:pip常用命令与最佳实践
  • Java项目实现幂等性方案总结
  • CSS3学习教程,从入门到精通, CSS3 盒子模型的详细语法知识点及案例代码(23)
  • Spring AI MCP 架构详解
  • [笔记.AI]向量化
  • Linux系统修改网卡名为eth0、eth1
  • 【CSS】相对位置小练习
  • SQL Server 备份相关信息查看