UI组件前端【免费下载链接】ng-zorro-antdAngular UI Component Library based on Ant Design项目地址https://gitcode.com/gh_mirrors/ng/ng-zorro-antd点击查看免费下载nz-input-number数字输入框组件默认在右侧渲染一对上下箭头按钮handler用于通过鼠标点击增减数值。本指南以 ng-zorro-antd 官方 demo handler-icon.ts 为核心讲解如何通过nzInputNumberUpIcon与nzInputNumberDownIcon两个投影指令替换默认箭头图标并深入剖析组件底层实现、交互状态与样式机制。读完本文你将掌握自定义 InputNumber 步进图标的完整方案并了解其与禁用态、边界值、长按连加等行为的协作方式。一、默认步进箭头handler的工作方式在深入自定义之前先看默认行为。nz-input-number的模板中当nzControls为true默认值时会渲染一个.ant-input-number-handler-wrap容器内含上up与下down两个 handler见 input-number.component.tsif (nzControls()) { div #handlers classant-input-number-handler-wrap (mouseup)stopAutoStep() (mouseleave)stopAutoStep() span rolebutton unselectableon classant-input-number-handler ant-input-number-handler-up [class.ant-input-number-handler-up-disabled]upDisabled() [attr.aria-disabled]upDisabled() (mousedown)onStepMouseDown($event, true) ng-content select[nzInputNumberUpIcon] nz-icon nzTypeup classant-input-number-handler-up-inner / /ng-content /span span rolebutton unselectableon classant-input-number-handler ant-input-number-handler-down [class.ant-input-number-handler-down-disabled]downDisabled() [attr.aria-disabled]downDisabled() (mousedown)onStepMouseDown($event, false) ng-content select[nzInputNumberDownIcon] nz-icon nzTypedown classant-input-number-handler-down-inner / /ng-content /span /div }默认图标是nz-icon nzTypeup与nz-icon nzTypedown分别添加.ant-input-number-handler-up-inner与.ant-input-number-handler-down-inner样式类。handler 的可见性由样式控制.ant-input-number-handler-wrap默认opacity: 0仅在.ant-input-number:hover或.ant-input-number-focused时变为opacity: 1见 index.less因此默认状态下箭头是悬停/聚焦时才浮现的。二、核心 APInzInputNumberUpIcon 与 nzInputNumberDownIcon自定义图标的关键是两个内容投影指令指令属性作用投影位置nzInputNumberUpIcon替换增加向上箭头图标handler-up 的ng-content select[nzInputNumberUpIcon]nzInputNumberDownIcon替换减少向下箭头图标handler-down 的ng-content select[nzInputNumberDownIcon]使用方式是把任意元素通常是nz-icon作为nz-input-number的子元素并打上对应属性。组件通过ng-content的select选择器捕获这些元素若未提供任何投影内容则回退渲染默认的nzTypeup/nzTypedown图标——这正是自定义与默认两种状态的无缝切换机制。三、完整可运行示例官方 demo 的完整实现位于 handler-icon.ts代码如下import { Component, signal } from angular/core; import { FormsModule } from angular/forms; import { NzIconModule } from ng-zorro-antd/icon; import { NzInputNumberModule } from ng-zorro-antd/input-number; Component({ selector: nz-demo-input-number-handler-icon, imports: [FormsModule, NzInputNumberModule, NzIconModule], template: nz-input-number [(ngModel)]value nz-icon nzInputNumberUpIcon nzTypearrow-up / nz-icon nzInputNumberDownIcon nzTypearrow-down / /nz-input-number }) export class NzDemoInputNumberHandlerIconComponent { readonly value signal(3); }要点说明模块导入必须同时引入NzInputNumberModule提供nz-input-number组件与NzIconModule提供nz-icon图标渲染能力双向绑定通过[(ngModel)]绑定valuedemo 中初始值为signal(3)图标替换nz-icon nzInputNumberUpIcon nzTypearrow-up /声明在nz-input-number内部并携带nzInputNumberUpIcon属性即替换向上箭头同理nzTypearrow-down携带nzInputNumberDownIcon替换向下箭头。nzType可取任意有效的 Ant Design 图标名例如arrow-up、plus、caret-up、up-circle等只要该图标已注册独立开关若只想替换其中一个箭头只放置一个携带对应属性的图标即可另一个会继续使用默认图标。四、源码级原理投影与默认回退从组件实现看自定义图标本质是内容投影Content Projection 默认内容兜底的组合组件在 handler 内部用ng-content select[nzInputNumberUpIcon]/ng-content select[nzInputNumberDownIcon]预留投影插槽ng-content的标签体里写的就是兜底内容nz-icon nzTypeup //nz-icon nzTypedown /当使用方没有投影任何带对应属性的元素时Angular 渲染兜底内容因此自定义不需要修改组件源码也不需要覆盖任何配置项纯模板即可完成。图标样式如何跟随新图标自定义图标投影后会进入.ant-input-number-handler-up-inner/.ant-input-number-handler-down-inner所在的 DOM 结构。样式层面index.less 对-inner图标做了统一约束-handler-up-inner, -handler-down-inner { .iconfont-mixin(); position: absolute; inset-inline-end: 4px; width: 12px; height: 12px; color: text-color-secondary; line-height: 12px; transition: all 0.1s linear; user-select: none; }也就是说替换后的图标会被限制在 12×12 尺寸内并定位在 handler 右侧 4px 处。若希望使用更大或不同布局的自定义图标可以在使用方样式中针对.ant-input-number-handler-up-inner/.ant-input-number-handler-down-inner覆盖这些规则。五、与交互状态的协同禁用、边界与长按连加自定义图标不会改变 handler 的既有交互逻辑以下几点与图标替换同时生效值得注意1. 边界禁用状态upDisabled()与downDisabled()由当前值与nzMax/nzMin比较得出见 input-number.component.tsprotected readonly upDisabled computed(() { return !isNil(this.value()) this.value()! this.nzMax(); }); protected readonly downDisabled computed(() { return !isNil(this.value()) this.value()! this.nzMin(); });达到边界时对应 handler 会获得ant-input-number-handler-up-disabled/ant-input-number-handler-down-disabled类并设置aria-disabled鼠标样式变为not-allowed图标颜色变为disabled-color。自定义图标同样会继承这些状态类下的样式规则。2. 长按自动连加onStepMouseDown实现了按下立即步进一次 → 延迟 600ms 后每 200ms 循环步进的长按加速机制常量定义见 input-number.component.tsconst STEP_INTERVAL 200; const STEP_DELAY 600;同时按住Shift键时步长放大 10 倍event.shiftKey ? this.nzStep() * 10 : this.nzStep()。鼠标松开mouseup或移出 handler 区域mouseleave时通过stopAutoStep()停止循环。这些行为与是否自定义图标无关。3. 隐藏 handler 的途径nzControls设为false模板中整个.ant-input-number-handler-wrap都不渲染图标自然消失见 input-number.component.ts 的if (nzControls())nzDisabled/nzReadOnly为真样式层面.ant-input-number-handler-wrap { display: none; }隐藏 handler见 index.less自定义图标同样不再显示。六、相关 API 速查结合组件文档 index.zh-CN.md与 handler 图标场景关联最紧密的配置项如下参数说明类型默认值[nzControls]是否显示增减按钮booleantrue[nzStep]每次改变步数可以是小数number1[nzMin]最小值numberNumber.MIN_SAFE_INTEGER[nzMax]最大值numberNumber.MAX_SAFE_INTEGER[nzDisabled]是否禁用booleanfalse[nzReadOnly]是否只读booleanfalse(nzOnStep)点击上下箭头的回调EventEmitterNzInputNumberStepEvent-其中(nzOnStep)在每次点击 handler 步进时触发事件负载定义如下与 input-number.component.ts 一致export type NzInputNumberStepEmitter wheel | handler | keyboard; export interface NzInputNumberStepEvent { value: number; offset: number; type: up | down; emitter: NzInputNumberStepEmitter; }当步进来自点击上下箭头时emitter字段值为handler可用于区分滚轮wheel与键盘keyboard触发的步进。七、注意事项图标需已注册nzType指定的图标名必须在图标库中可用。ng-zorro-antd 默认不会全量注册所有图标若使用非常见图标需要确保通过provideNzIcons或相应方式完成图标注册否则图标无法渲染独立替换nzInputNumberUpIcon与nzInputNumberDownIcon可单独使用未替换的一侧保持默认箭头样式适配自定义图标会被套用.ant-input-number-handler-up-inner/-down-inner的 12×12 尺寸约束如需特殊尺寸请自行覆盖样式基础用法参考不带自定义图标的普通数字输入框用法可参考 basic.ts其模板为nz-input-number [(ngModel)]value nzMin1 nzMax10 /自定义图标示例在此基础上增加两个投影图标即可。赞分享UI组件前端【免费下载链接】ng-zorro-antdAngular UI Component Library based on Ant Design项目地址https://gitcode.com/gh_mirrors/ng/ng-zorro-antd点击查看免费下载相关推荐ng-zorro-antd Avatar 头像组件三种类型实战图片、Icon 与字符头像的自定义指南ng zorro antd Avatar 头像组件三种类型实战图片、Icon 与字符头像的自定义指南 nz avatar 头像组件用于代表用户或事物是数UI组件前端ng-zorro-antd 自定义 SVG 图标完全指南在 nz-icon 中嵌入内联 SVGng zorro antd 自定义 SVG 图标完全指南在 nz icon 中嵌入内联 SVG nz icon 是 NG ZORROng zorro antUI组件前端ng-zorro-antd Calendar 日历组件自定义头部nzCustomHeader实战指南ng zorro antd Calendar 日历组件自定义头部nzCustomHeader实战指南 本文是一份围绕 ng zorro antdAngulUI组件前端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
pytest登录态共享实战:fixture作用域与conftest全解析 干测试这行,尤其是天天跟接口自动化和UI自动化打交道的话,“登录”这两个字估计早就刻进DNA里了。几乎所有用例都绕不开登录态,很多岗位的实际需求就是:登录逻辑跑一次,后面一堆用例共享这个登录状态,别每跑… · 2026/9/26 17:40:58
八代酷睿核显Win7驱动魔改实战指南 1. 项目概述:为什么八代酷睿核显在Win7上是个“硬骨头”八代酷睿G4900、G5400这类入门级处理器,搭配UHD 610/630核显,是很多老平台升级或低成本办公主机的务实选择。但问题来了——Intel官方早在2020年就彻底停止了对Win7的UHD核显驱动支持&a… · 2026/9/26 17:40:58
Spring Boot在线票务预订平台实战:Redis锁座、消息队列与超卖防护 简介:这份资源是一篇完整的Spring Boot在线票务预订平台(特麦网)毕业论文文档,面向计算机相关专业毕业生及需要完成类似系统设计与论文写作的开发者。论文围绕在线预订、座位选择、支付处理与电子票发放等核心功能展开,… · 2026/9/26 17:40:58
如何5分钟上手unlazy?AI智能体防偷懒技能安装与tree 5快速入门指南 如何5分钟上手unlazy?AI智能体防偷懒技能安装与tree 5快速入门指南 【免费下载链接】unlazy Anti-laziness skill for AI agents. Core: the Depth Tree method, which splits a task N layers deep and gives every leaf the full time budget of the whole task, … · 2026/9/26 18:36:30
影视仓接口配置全攻略:JSON结构解析与多仓源设置避坑指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 18:36:30
基于BiLSTM与注意力机制的电影评论情感分析实战 简介:这份资源是面向计算机相关专业学生与项目实战学习者的深度学习实战资料,围绕电影评论情感分析这一经典NLP任务展开,可用于课程设计、期末大作业或自学练手。压缩包共14个文件,约21.28MB,包含3个ipynb实验笔记、1个… · 2026/9/26 18:36:30
RAG完整链路实战:从建库、检索到生成,Agent开发必读 做Agent开发的,RAG是绕不开的一道坎。不管是让大模型读懂企业的私有文档,还是给智能体补上“实时知识”这一课,RAG(Retrieval-Augmented Generation,检索增强生成)都是当前最主流、也最容易落地的方案。这篇… · 2026/9/26 18:36:30
追番站点组合推荐:五个站点搭建看番聊番一体化工作流 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 18:36:30
Hadoop+Spark+Hive招聘大数据分析与可视化推荐系统毕设实战 每年的毕业设计市场上,标题里挂着“hadoopsparkhive招聘大数据分析可视化 招聘推荐系统”的项目一抓一大把。我当初选这个题的时候也是把它当成“会用几个框架套个页面”的练手项目,结果真到动手阶段才发现,题目每一个词都认识,凑… · 2026/9/26 18:36:24
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46