首页/新闻资讯/正文详情

ng-zorro-antd CheckList 任务清单组件:从配置到源码的完整指南

发布时间:2026/9/25 2:22:06 来源:云帆数科 栏目:资讯中心
ng-zorro-antd CheckList 任务清单组件:从配置到源码的完整指南
UI组件前端【免费下载链接】ng-zorro-antdAngular UI Component Library based on Ant Design项目地址https://gitcode.com/gh_mirrors/ng/ng-zorro-antd点击查看免费下载CheckList 是 ng-zorro-antdAngular UI 组件库中用于梳理强制顺序流程的特色组件。本文以 CheckList 官方文档 为主体结合组件源码、演示用例与多语言文案系统讲解其核心 API、数据模型、进度计算原理、悬浮按钮与面板渲染机制以及隐藏清单的持久化实践帮助你快速将该组件落地到复杂的业务场景中。何时使用如果当前页面的业务逻辑过于复杂且带有较为强制的顺序流控制那么 CheckList 可以帮助你简化流程。典型场景包括多步骤强制流程例如开通服务必须依次完成「填写资料 → 实名认证 → 绑定银行卡 → 激活」前一步未完成时后一步不可操作复杂业务页面的指引在信息密集的管理后台中用清单引导用户按正确顺序完成任务避免遗漏关键步骤操作进度可视化实时展示当前处于第几步、已完成几步、剩余几步让用户对整体进度心中有数。从组件定位看nz-check-list由一个悬浮按钮触发 Popover 面板面板内以步骤列表 进度条的形式呈现任务流未完成的步骤数量会以角标数字展示在悬浮按钮上形成完整的「触发 → 展示 → 交互 → 隐藏」闭环。nz-check-list 组件 API参数说明类型默认值全局配置[nzItems]任务清单元素NzItemProps[][]-[nzVisible]显示任务清单booleanfalse-[nzIndex]当前所属位置number1-[nzProgress]显示任务进度booleantrue-[nzTriggerRender]清单悬浮按钮的渲染模板TemplateRefvoid \| string--[nzTitle]清单面板标题的渲染模板TemplateRefvoid \| string--[nzFooter]清单面板底部的渲染模板TemplateRefvoid \| string--(nzHide)隐藏清单的回调EventEmitterbooleanfalse-(nzHide)的回调值为是否不再显示清单。你可以在回调中存储数据到LocalStorage中以避免再次显示清单。输入与输出在源码中的对应实现上述 API 在 check-list.component.ts 中通过 Angular 17 的新式input()/output()信号 API 声明nzItems inputNzItemProps[]([])默认空数组面板步骤即由此渲染nzVisible input(false)默认false清单初始不展示nzIndex input(1)默认从第 1 步开始作为计算进度百分比的关键输入nzProgress input(true)默认展示进度条三个渲染模板nzTriggerRender、nzTitle、nzFooter均接受TemplateRefvoid | string且默认值为null未提供时组件会回退到内置文案详见下文「内置多语言文案」nzHide是只读的outputboolean()仅在用户确认「不再需要操作清单」时触发。面板的开关状态由linkedSignal(this.nzVisible)check-list.component.ts管理外部传入的nzVisible变化会同步到内部visible信号用户点击开关又会通过visible.set($event)回写实现「受控 内部联动」的双向状态模型。未完成角标的计算原理悬浮按钮上显示的数字角标来自unfinished计算属性check-list.component.tsprotected unfinished computed(() { this.visible(); return this.nzItems().filter(item !item?.checked).length; });它统计所有checked ! true的步骤数量并通过DecimalPipe模板中number: 1.0-0格式化为整数显示同时读取visible()保证面板展开时角标数据仍能随勾选状态实时刷新。角标只在「面板隐藏且有未完成任务」时渲染check-list.component.ts。InterfacesNzItemProps参数说明类型默认值key清单元素的唯一 keystring-description清单元素描述内容string-checked当前清单是否完成boolean-onClick点击步骤触发的方法(item: NzItemProps) void-key为清单元素的唯一标识如果不填写则默认使用description作为 key。接口定义位于 typings.ts与文档略有差异的细节是源码中description为必填字段无?checked、onClick、key为可选字段。key的缺省回退逻辑体现在面板渲染的track表达式中check-list-content.component.tsfor (item of items(); track item.key || item.description) { ... }即未提供key时以description作为循环跟踪标识。实践建议当同一描述可能重复出现时务必为每项指定唯一key否则 Angular 的track机制可能导致列表更新异常。进度条百分比的计算逻辑进度由内部progressPercent计算属性得出check-list-content.component.tsprotected progressPercent computed(() { const index Math.min(Math.max(this.index() - 1, 0), this.items().length); return (index / this.items().length) * 100; });计算规则以nzIndex为基准当前处于第 N 步时已完成 N-1 步进度 (N-1) / 总步数 × 100%使用Math.max(index - 1, 0)防止nzIndex为 0 或负数时出现负进度使用Math.min(..., items.length)防止nzIndex超过总步数时进度溢出 100%当进度为 100% 时面板头部切换为「完成态」展示成功图标与checkListFinish文案「你已成功完成任务清单」并给出「关闭」按钮check-list-content.component.ts。进度条本体复用nz-progress组件nz-progress [nzPercent]progressPercent() | number: 1.0-0外层进度条由nzProgress布尔值控制是否渲染check-list-content.component.ts。悬浮按钮与面板的整体结构nz-check-list的模板check-list.component.ts由三层组成悬浮按钮nz-check-list-button本质是一个带ant-btn ant-btn-primary ant-check-list-button样式的按钮容器check-list-button.component.ts内部通过ng-content投影内容Popover 触发器按钮上挂载nz-popover指令配置nzPopoverTriggerclick、nzPopoverPlacementtopRight、[nzPopoverOverlayClickable]false点击按钮右上弹出面板面板内容nz-check-list-content渲染标题、进度条、步骤列表与底部区域。按钮默认内容为内置图标 文案nz-icon nzTypecheck-circle nzThemeoutline classant-check-list-icon / div classant-check-list-description{{ locale().checkList }}/div当传入nzTriggerRender时通过*nzStringTemplateOutlet输出自定义字符串或模板覆盖默认按钮外观check-list.component.ts。面板内部的分支状态nz-check-list-content内部存在两个视图分支check-list-content.component.ts展开态默认显示标题nzTitle或默认文案checkList、可选进度条、步骤列表、底部nzFooter或默认文案checkListFooter「不需要操作指引」点击底部即收起面板收起确认态当面板收起时出现「你要关闭操作清单吗」确认框包含「确定」「取消」按钮以及「以后不再需要操作清单」复选框——勾选后点确定会通过hide.emit(checked)把true传给外部的nzHide事件check-list-content.component.ts外层组件据此可持久化「不再展示」。步骤行的关键交互check-list-content.component.ts每行由序号/对勾圆形图标 描述文字组成itemHighlightindex() $index 1标记当前所在步骤高亮显示仅当「当前步骤且有onClick」时渲染右侧的箭头图标点击触发item.onClick?.(item)——这正是「强制顺序流控制」的入口只有轮到当前步骤用户才能执行该步并推进nzIndex。内置多语言文案i18n面板中的所有默认文案均来自 i18n 的CheckList语言包。接口定义在 nz-i18n.interface.ts共 8 个字段以简体中文为例zh_CN.ts字段中文默认值checkList任务清单checkListFinish你已成功完成任务清单checkListClose关闭checkListFooter不需要操作指引checkListCheck你要关闭操作清单吗ok确定cancel取消checkListCheckOther以后不再需要操作清单组件通过NzI18nService监听语言变更并同步渲染check-list.component.tslocale toSignalNzCheckListI18nInterface( this.i18n.localeChange.pipe(map(() this.i18n.getLocaleData(CheckList))), { requireSync: true } );仓库已内置 ar_EG、en_US、es_ES、fa_IR、ko_KR 等多语言包切换语言后清单文案会自动跟随无需额外配置。快速上手基础用法示例引入模块后即可使用demo 见 basic.tsimport { Component } from angular/core; import { NzCheckListModule, NzItemProps } from ng-zorro-antd/check-list; Component({ selector: app-check-list-basic, imports: [NzCheckListModule], template: nz-check-list [nzItems]nzItems [nzIndex]index / }) export class CheckListBasicComponent { index 2; readonly nzItems: NzItemProps[] [ { description: step 1, checked: true, onClick: (item: NzItemProps) { this.index; item.checked true; } }, { description: step 2, onClick: (item: NzItemProps) { this.index; item.checked true; } }, { description: step 3, onClick: (item: NzItemProps) { this.index; item.checked true; } }, { description: step 4, onClick: (item: NzItemProps) { this.index; item.checked true; } } ]; }运行效果悬浮按钮右上弹出步骤面板nzIndex2时进度为(2-1)/4 25%第 2 步高亮并显示箭头点击箭头执行onClick同时index与checked同步更新驱动进度条与角标刷新。复杂场景自定义全部渲染入口完整参数配置示例见 custom.ts通过响应式表单动态控制nzVisible、nzProgress、nzIndex并将nzTriggerRender/nzTitle/nzFooter绑定为字符串输入组件内部通过*nzStringTemplateOutlet支持字符串与TemplateRef两种形态nz-check-list [nzItems]nzItems [nzVisible]form.controls.nzVisible.value [nzIndex]form.controls.nzIndex.value || 0 [nzProgress]form.controls.nzProgress.value [nzTriggerRender]form.controls.nzTriggerRender.value [nzTitle]form.controls.nzTitle.value [nzFooter]form.controls.nzFooter.value (nzHide)hideCancel($event) /表单初始值示例form this.fb.group({ nzProgress: true, nzVisible: false, nzIndex: 0, nzTriggerRender: Open List, nzTitle: Customize task lists, nzFooter: Custom Footer Name }); hideCancel(check: boolean): void { console.log(check); this.form.controls.nzVisible.setValue(false); }结合 nzHide 实现「不再提醒」持久化官方文档明确建议(nzHide)的回调值为是否不再显示清单可在回调中将数据写入LocalStorage避免重复展示。推荐实现方式hideCancel(neverShowAgain: boolean): void { if (neverShowAgain) { localStorage.setItem(check-list-dismissed, true); } this.form.controls.nzVisible.setValue(false); }初始化时读取initialVisible localStorage.getItem(check-list-dismissed) ! true;将initialVisible绑定到nzVisible即可实现「用户勾选『以后不再需要操作清单』后下次进入页面不再弹出」。关键注意事项nzIndex默认值为 1基础用法中若不传进度从第 1 步起算custom demo 中将其初始化为 0 并在模板中|| 0兜底进度计算会钳制为 0%Math.max(index - 1, 0)key与descriptionkey缺省时回退为description重复描述务必显式指定唯一keyonClick只在高亮步骤触发非当前步骤即使定义了onClick也不会渲染箭头这是「强制顺序流控制」的核心语义TemplateRefvoid | string输入字符串直接渲染文本模板可通过ng-template自定义富内容如带图标的提示样式类前缀ant-check-list-*如需深度定制可基于 style/index.less 与 style/entry.less 中的类名覆盖样式模块导入使用NzCheckListModulecheck-list.module.ts其内部依赖NzPopoverModule、NzIconModule、NzOutletModule、NzProgressModule、NzCheckboxModule、NzButtonModule等均由组件自身引入业务侧只需导入NzCheckListModule即可。赞分享UI组件前端【免费下载链接】ng-zorro-antdAngular UI Component Library based on Ant Design项目地址https://gitcode.com/gh_mirrors/ng/ng-zorro-antd点击查看免费下载相关推荐NG-ZORRO/ng-zorro-antd 主题定制完全指南NG ZORRO/ng zorro antd 主题定制完全指南 前言 NG ZORROAnt Design of Angular作为企业级UI组件库提供了UI组件前端从源码到部署CrowdStrike CRT内部工作原理与自定义扩展终极指南从源码到部署CrowdStrike CRT内部工作原理与自定义扩展终极指南 CrowdStrike CRTCrowdStrike Reporting Too3分钟快速上手ng-zorro-antd完整安装配置指南3分钟快速上手ng zorro antd完整安装配置指南 ng zorro antd是阿里巴巴基于Ant Design打造的Angular企业级UI组件库为UI组件前端上一篇探索JWT认证新境界Nginx上的nginx-jwt下一篇字符串评分插件 - string_score 使用指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Rancher部署K8s集群实战:节点规划、证书轮换与运维避坑
Rancher部署K8s集群实战:节点规划、证书轮换与运维避坑

简介:面向具备Linux和容器基础的技术人员,这份文档系统梳理了使用Rancher部署Kubernetes集群的完整路径:从服务器准备、节点角色划分(Control Plane、Worker、Etcd)到Rancher Server两种安装方式(测试环境D… · 2026/9/25 2:21:59

Tftpd64线程模型揭秘:调度器看门狗、假消息唤醒与线程自动重启的3个核心技巧
Tftpd64线程模型揭秘:调度器看门狗、假消息唤醒与线程自动重启的3个核心技巧

Tftpd64线程模型揭秘:调度器看门狗、假消息唤醒与线程自动重启的3个核心技巧 【免费下载链接】tftpd64 The working repository of the famous TFTP server. 项目地址: https://gitcode.com/gh_mirrors/tf/tftpd64 Tftpd64 是 Windows 平台上著名的轻量级多线… · 2026/9/25 2:21:47

Django Ninja Class Based Operations 提案深度解析:用类装饰器消除 API 操作中的重复样板代码
Django Ninja Class Based Operations 提案深度解析:用类装饰器消除 API 操作中的重复样板代码

后端API设计 【免费下载链接】django-ninja 💨 Fast, Async-ready, Openapi, type hints based framework for building APIs 项目地址: https://gitcode.com/gh_mirrors/dj/django-ninja 点击查看 免费下载 本文基于 Django Ninja 官方 Enhancement Pr… · 2026/9/25 2:21:35

开发指南:跟着md2_cj学仓颉项目工程化——cjpm构建、测试、覆盖率与文档一条龙
开发指南:跟着md2_cj学仓颉项目工程化——cjpm构建、测试、覆盖率与文档一条龙

开发指南:跟着md2_cj学仓颉项目工程化——cjpm构建、测试、覆盖率与文档一条龙 【免费下载链接】md2-cj 仓颉版md2摘要算法 项目地址: https://gitcode.com/Cangjie-TPC/md2_cj md2_cj 是一个用仓颉语言(Cangjie)实现的 MD2 消息摘要算… · 2026/9/25 2:57:47

SpringBoot私房菜O2O平台开发实战
SpringBoot私房菜O2O平台开发实战

1. 项目概述与核心价值这个基于SpringBoot的私房菜上门服务系统,本质上是一个连接家庭厨师与美食爱好者的O2O平台。我在开发过程中发现,这类系统最核心的价值在于解决了三个痛点:一是让有厨艺但没实体店铺的厨师能获得收入来源,二… · 2026/9/25 2:57:47

STM32开源工程三件套:代码+原理图+仿真闭环验证方法论
STM32开源工程三件套:代码+原理图+仿真闭环验证方法论

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 2:57:47

Spring Boot构建智能物业管理系统开发实践
Spring Boot构建智能物业管理系统开发实践

1. 项目背景与核心价值小区物业管理系统是当前社区数字化建设的重要组成部分。随着城市化进程加快,传统纸质化、人工化的物业管理模式已经难以满足现代社区高效运营的需求。我们团队基于Spring Boot框架开发的这套系统,正是为了解决以下几个核心痛点&… · 2026/9/25 2:57:47

NVIDIA老版本驱动下载与回滚实战指南
NVIDIA老版本驱动下载与回滚实战指南

1. 为什么必须掌握老版本驱动下载与回滚能力——不是“怀旧”,而是生产级刚需英伟达官网不提供显眼入口下载历史版本驱动,这绝非疏忽,而是刻意为之的设计逻辑。我做过7年GPU运维,服务过200家AI训练实验室、图形工作站和嵌入式边缘… · 2026/9/25 2:57:47

计算机网络实验报告:小型校园网设计与组建全流程
计算机网络实验报告:小型校园网设计与组建全流程

简介:东北大学《计算机网络实验》课程报告《小型校园网的设计与组建》是一份面向计算机专业学生的完整实验方案,围绕总校与分校两大校区、三台PC机构成的网络模型,系统演练网络结构设计、C类网段规划与设备调试等核心环节。报告给出了210.100… · 2026/9/25 2:57:41

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码