ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ng-zorro-antd Cascader 自定义触发方式实战:nzShowInput 关闭输入框与触发器分离方案

ng-zorro-antd Cascader 自定义触发方式实战:nzShowInput 关闭输入框与触发器分离方案 UI组件前端【免费下载链接】ng-zorro-antdAngular UI Component Library based on Ant Design项目地址https://gitcode.com/gh_mirrors/ng/ng-zorro-antd点击查看免费下载本篇文章围绕 ng-zorro-antd基于 Ant Design 的 Angular UI 组件库中 Cascader 级联选择组件的自定义显示能力展开重点讲解如何通过nzShowInput关闭默认输入框、将触发按钮与结果显示完全分离并结合组件源码说明底层实现原理。读完本文你将掌握自定义触发器Custom trigger模式下的完整写法、事件监听与结果显示方案可直接应用于表单或页面交互场景。场景背景为什么要自定义触发器Cascader 默认形态是一个可点击展开级联菜单的输入框选中结果直接显示在输入框内。但在部分交互设计中页面需要切换按钮和结果分开——即点击某个按钮或链接、图标才弹出级联选择面板而选中的路径文本显示在另一处。此时默认输入框的展示方式不再适用nzShowInput属性便派上了用场。该场景的官方演示位于 components/cascader/demo/trigger.md 与配套示例 components/cascader/demo/trigger.ts实现切换按钮和结果分开的效果。核心实现关闭输入框并自定义触发内容1. 关闭默认输入框Cascader 组件的模板cascader.component.ts中输入框区域由if (nzShowInput)控制渲染。该属性默认值为true即默认显示输入框设置为false后整个.ant-select-selector选择器外壳、搜索框、占位符、箭头与清除图标均不渲染组件内只保留弹出的下拉面板与通过ng-content /投影进来的自定义内容。对应属性声明位于 cascader.component.tsInput({ transform: booleanAttribute }) nzShowInput true;它使用booleanAttribute转换因此模板中直接写[nzShowInput]false或nzShowInputfalse均可生效。2. 用投影内容充当触发器关闭输入框后组件通过内容投影Content Projection接收你自定义的触发元素。示例 trigger.ts 中是这样组合的{{ text() }} nz-cascader [nzShowInput]false [nzOptions]nzOptions [ngModel]values() (ngModelChange)values.set($event); onChanges($event) (nzSelectionChange)onSelectionChange($event) a hrefjavascript: void(0)Change city/a /nz-cascader要点说明[nzShowInput]false隐藏默认输入框投影进nz-cascader内部的a链接即为可见触发器点击它即可展开级联菜单选中结果不再显示在输入框内而是通过事件回调自行渲染到页面任意位置本例中渲染在组件上方的{{ text() }}。3. 通过事件驱动更新显示结果由于没有了输入框的自动回显需要借助事件获取选中路径并自行更新显示文本。示例中定义了两个信号signal分别保存选中值与展示文本readonly values signalstring[] | null(null); readonly text signal(Unselect); onChanges(values: string[]): void { console.log(values, this.values()); } onSelectionChange(selectedOptions: NzCascaderOption[]): void { this.text.set(selectedOptions.map(o o.label).join(, )); }ngModelChange值变化时触发values中保存的是各级节点的value组成的数组nzSelectionChange选择变化时触发事件参数为选中的NzCascaderOption[]完整节点数组可借此取出每级节点的label用join(, )拼接成Zhejiang, Hangzhou, West Lake形式的展示文本。该事件对应的Output()声明见 cascader.component.ts。示例数据trigger.ts包含zhejiang → hangzhou → xihu与jiangsu → nanjing → zhonghuamen两级三级节点叶子节点通过isLeaf: true标记保证选择到叶子时才完成整条路径的选择。触发方式与展示渲染的进阶搭配自定义触发场景下通常还会配合以下属性一起使用使交互更完整属性说明取值默认值[nzTriggerAction]触发下拉的动作可传单个值或数组click \| hover数组表示同时支持click[nzExpandTrigger]次级菜单展开方式click \| hoverclick[nzShowArrow]是否显示展开箭头booleantrue[nzDisplayRender]/[nzLabelRender]选中后展示的渲染模板TemplateRef-[nzPlaceHolder]占位文本输入框模式下string请选择其中nzTriggerAction在源码中的处理逻辑值得注意cascader.component.tsInput() nzTriggerAction: NzCascaderTriggerType | NzCascaderTriggerType[] [click] as NzCascaderTriggerType[];判断是否响应某类动作时使用cascader.component.tsprivate isActionTrigger(action: click | hover): boolean { return typeof this.nzTriggerAction string ? this.nzTriggerAction action : this.nzTriggerAction.indexOf(action) ! -1; }也就是说传入字符串hover或数组[click, hover]都能正确识别同时可通过nzMouseEnterDelay/nzMouseLeaveDelay默认均为 150ms见 cascader.component.ts控制 hover 触发下菜单的打开/关闭延迟。此外关闭输入框后仍可通过nzSelectionChange获得完整节点链配合NzCascaderOption的label/value/isLeaf等字段自由定制展示逻辑若需要更复杂的回显样式可改用nzLabelRender模板自定义渲染。关联能力与扩展阅读完整 Cascader API 说明nzExpandTrigger、nzShowArrow、nzShowInput、nzPlaceHolder、nzLabelRender、nzSelectionChange等的参数表与默认值见 components/cascader/doc/index.zh-CN.md触发动作独立演示components/cascader/demo/trigger-action.md 与 trigger-action.ts选择即生效无需点叶子节点components/cascader/demo/change-on-select.md悬停展开、自定义模板、弹出层渲染等更多场景可继续浏览 components/cascader/demo 目录下的其余示例组件核心实现与属性声明components/cascader/cascader.component.ts测试覆盖见 components/cascader/cascader.spec.ts。小结在 ng-zorro-antd 中实现 Cascader 的自定义触发器核心只有三步设置[nzShowInput]false隐藏默认输入框、在组件标签内投影自定义触发元素、通过nzSelectionChange事件自行渲染选中结果。底层源码表明nzShowInput直接控制选择器外壳整段模板的渲染关闭后组件的下拉面板与内容投影照常工作因此该方案可以放心应用于需要触发与结果分离的各类交互页面中。赞分享UI组件前端【免费下载链接】ng-zorro-antdAngular UI Component Library based on Ant Design项目地址https://gitcode.com/gh_mirrors/ng/ng-zorro-antd点击查看免费下载相关推荐ng-zorro-antd Dropdown 触发方式实战nzTrigger 的 hover 与 click 全解析ng zorro antd Dropdown 触发方式实战nzTrigger 的 hover 与 click 全解析 本文围绕 ng zorro antd 下UI组件前端深度解析Windows更新修复工具彻底解决Windows更新问题的专业方案深度解析Windows更新修复工具彻底解决Windows更新问题的专业方案 Windows更新问题一直是系统管理员和技术爱好者面临的常见挑战。当WindowsUI组件前端PPT Master SVG图表模板指南33种图表3步做出可编辑PPTPPT Master SVG图表模板指南33种图表3步做出可编辑PPT PPT Master是一个AI驱动的演示文稿工具把文档变成可编辑的PPT。它自带3UI组件前端上一篇Windows Cleaner终极指南3分钟解决C盘爆红和电脑卡顿问题下一篇小红书内容采集神器XHS-Downloader 高效下载工具全攻略创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表