UI组件前端【免费下载链接】ng-zorro-antdAngular UI Component Library based on Ant Design项目地址https://gitcode.com/gh_mirrors/ng/ng-zorro-antd点击查看免费下载本篇以 ng-zorro-antd 的nz-cron-expression定时表达式组件为对象围绕其无边框Borderless模式展开先给出可直接复制的nzBorderless用法再结合组件源码与样式文件解释该属性如何映射到ant-input-borderless类名、影响哪些 DOM 结构并附上组件完整 API、cron 支持格式与单元测试验证路径帮助你在表单场景中让定时表达式输入框与页面背景无缝融合。什么时候需要无边框模式nz-cron-expression是 ng-zorro-antd 中用于显示和编辑 cron 表达式的数据录入组件其官方文档给出的使用场景是需要在表单中使用 cron 格式验证时使用见 组件文档。组件默认渲染为一个带边框的输入组外层.ant-cron-expression-input-group呈现标准ant-input输入框外观。当定时表达式输入框被嵌入卡片、描述列表、无边框布局或自定义容器中时默认边框会显得突兀。此时启用nzBorderless即可隐藏边框让输入区域与宿主容器视觉上融为一体。官方 demo 仅有一行模板代码见 borderless 示例import { Component } from angular/core; import { NzCronExpressionModule } from ng-zorro-antd/cron-expression; Component({ selector: nz-demo-cron-expression-borderless, imports: [NzCronExpressionModule], template: nz-cron-expression nzBorderless / }) export class NzDemoCronExpressionBorderlessComponent {}对应的描述文件为 borderless.md中文说明即没有边框。使用前需安装 cron 表达式解析依赖组件文档明确要求别忘记npm install cron-parser^5.5.0源码级实现nzBorderless 如何生效输入属性声明在组件类 cron-expression.component.ts 中nzBorderless使用 Angular 的信号化inputbooleanAttribute转换声明L142Input({ transform: booleanAttribute }) nzBorderless false;booleanAttribute意味着模板中只写nzBorderless无值属性也会被正确解析为true无需nzBorderlesstrue默认值为false即默认带边框。模板类名绑定组件内联模板将nzBorderless直接绑定到外层输入组的类名上模板 L63-L82div classant-input ant-cron-expression-input-group [class]statusClasses() [class.ant-input-lg]nzSize large [class.ant-input-sm]nzSize small [class.ant-input-borderless]nzBorderless [class.ant-input-focused]focus [class.ant-input-disabled]nzDisabled 也就是说nzBorderless的唯一渲染效果就是在.ant-cron-expression-input-group上追加 antd 输入控件体系的通用无边框类ant-input-borderless由该类名负责移除输入组外框的边框与描边。组件采用ViewEncapsulation.None样式不做视图封装这正是该类名能被组件全局样式表命中的前提。值得注意的是组件的 LESS 样式中输入组内的每个子输入框本身就始终是无边框的见 style/index.less L18-L31-input-group { display: flex; flex-wrap: nowrap; align-items: center; input { width: 100%; padding: 0; border: none !important; border-radius: 0; outline: none; box-shadow: none !important; } }因此从源码结构看nzBorderless真正消除的是整组输入框最外层那条边框开启前后内部分割布局秒/分/时/日/月/星各占 20% 宽度见nz-cron-expression-input { width: 20% }保持不变只是外框消失。这与组件输入框 标签行的双行结构ant-cron-expression-input-group与ant-cron-expression-label-group配合使无边框状态下仍可通过聚焦高亮ant-input-focused反馈当前交互位置。子输入框结构每组占位输入框由 NzCronExpressionInputComponent 渲染内部是一个nz-input输入框通过ngModel双向绑定并在 focus 时自动全选文本focusInputEffect中调用select()方便用户直接输入覆盖旧值。该子组件不感知边框开关边框外观完全由父组件类名控制属于典型的外观收敛在容器层的实现方式。完整 API 参考无边框属性只是组件众多配置项之一以下 API 表完整继承自组件官方文档 index.zh-CN.md便于对照使用nz-cron-expression参数说明类型默认值版本[nzType]cron 规则类型linuxspringlinux[nzSize]设置输入框大小largesmalldefaultdefault[nzDisabled]禁用booleanfalse[nzBorderless]是否隐藏边框booleanfalse[nzStatus]设置校验状态errorwarning-22.1.0[nzCollapseDisable]隐藏折叠面板booleanfalse[nzExtra]自定义渲染右侧的内容TemplateRefvoid-[nzSemantic]自定义渲染下次执行时间TemplateRefvoid-几个与无边框模式常搭配的属性可结合源码理解其行为nzTypelinux时标签列为minute/hour/day/month/week五段spring时额外包含second对应源码中labelsOfType()与cronFormType()linux 模式下禁用 second 控件。nzSize同时作用于输入组与标签组ant-input-lg/ant-input-sm无边框状态下依旧生效。nzStatus显式校验状态组件内部还会将表单自身的INVALID状态计算为errorfinalStatuscomputed见 组件源码 L176-L185并可继承外层NzFormStatusService的表单状态与nzBorderless组合时可实现无边框但带校验描边的效果。nzCollapseDisable隐藏下方预览折叠面板默认情况下组件会解析 cron 表达式并预览未来 5 次执行时间previewDate/loadMorePreview基于cron-parser的CronExpressionParser。支持的 cron 格式组件文档明确列出的支持格式如下spring 类型 6 段、linux 类型 5 段秒位为可选项* * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ | │ │ │ │ │ └ day of week (0 - 7, 1L - 7L) (0 or 7 is Sun) │ │ │ │ └───── month (1 - 12) │ │ │ └────────── day of month (1 - 31, L) │ │ └─────────────── hour (0 - 23) │ └──────────────────── minute (0 - 59) └───────────────────────── second (0 - 59, optional)组件内部通过CronExpressionParser.parse(cron)做合法性校验cronValidatorFn组件源码 L153-L163拼接各段值后解析失败即返回{ error: true }同时组件实现了ControlValueAccessor与Validator可直接与formControlName/ 响应式表单集成模型值即为空格拼接的完整 cron 字符串writeValue拆分回填、onChange回传。测试验证组件测试 cron-expression.spec.ts L56-L62 对无边框行为做了断言将nzBorderless置为true后.ant-cron-expression-input-group的类表中应包含ant-input-borderlessit(should nzBorderless work, () { testComponent.nzBorderless.set(true); fixture.detectChanges(); expect(resultEl.nativeElement.querySelector(.ant-cron-expression-input-group).classList).toContain( ant-input-borderless ); });该测试与模板绑定逻辑一一对应也说明无边框模式的生效点就是这一个类名便于在自定义主题下排查样式冲突——若你的全局样式覆盖了ant-input-borderless相关规则输入组外框表现可能与预期不一致。小结nzBorderless是nz-cron-expression的一个布尔型外观开关默认false开启后在输入组容器上追加ant-input-borderless类移除输入组外框边框而内部各段输入框的布局、校验、cron 预览等能力均不受影响。相关源码集中在 cron-expression 组件目录示例见 borderless demo样式见 style/index.lessAPI 与格式说明见 组件文档。赞分享UI组件前端【免费下载链接】ng-zorro-antdAngular UI Component Library based on Ant Design项目地址https://gitcode.com/gh_mirrors/ng/ng-zorro-antd点击查看免费下载相关推荐React Native CarPlay 权限与证书配置快速获取苹果CarPlay权限的终极指南React Native CarPlay 权限与证书配置快速获取苹果CarPlay权限的终极指南 React Native CarPlay 是让ReacTerragrunt 实战指南用编排工具管理大规模 Terraform 项目Terragrunt 实战指南用编排工具管理大规模 Terraform 项目 Terragrunt 是一款开源的基础设施即代码编排工具套在 TerraforCLIDevOps云原生从源码到部署CrowdStrike CRT内部工作原理与自定义扩展终极指南从源码到部署CrowdStrike CRT内部工作原理与自定义扩展终极指南 CrowdStrike CRTCrowdStrike Reporting Too上一篇NeverSink过滤器完整指南流放之路2效率提升终极方案下一篇NestJS自定义ACL访问控制终极教程nestjs-starter-rest-api如何实现细粒度权限引擎创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Strands Agents 可观测性完全指南:用 OpenTelemetry 实现模型调用与工具执行的全链路追踪 Strands Agents 可观测性完全指南:用 OpenTelemetry 实现模型调用与工具执行的全链路追踪 【免费下载链接】harness-sdk Build an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python & TypeScript - any model, an… · 2026/9/25 2:55:49
名片网站源码详解:从结构到部署避坑指南 简介:一套完整的PHP名片建站源码,定位为可直接部署的名片在线定制整站程序,面向建站开发者、中小企业或个人站长,用于快速搭建支持在线制作、提交名片、在线下单及文件上传的名片定制平台。内置3000多套模板与2000多套案例&#x… · 2026/9/25 2:55:36
RisingWave 开发者文档体系:构建 rustdoc 索引页与核心 crate 导航指南 数据库流处理后端数据工程 【免费下载链接】risingwave Event streaming platform for agentic AI. Continuously ingest, transform, and serve event streams in real time, at scale. 项目地址: https://gitcode.com/gh_mirrors/ri/risingwave 点击查看 免费下载… · 2026/9/25 3:30:49
苹果CMS+油条视频模板视频站搭建全攻略:从宝塔部署到上线备份 简介:油条视频是一套基于苹果CMS系统的视频建站完整解决方案,面向需要快速搭建影视资源站的站长、运营者及PHP二次开发学习者。系统后台内置自定义参数,可灵活对应会员升级与积分充值页面;视频、演员、专题、收藏、会员等模块齐全… · 2026/9/25 3:30:49
OpenTTD 编译实战:依赖库、CMake 构建流程与 Windows/多平台调试选项 游戏开发 【免费下载链接】OpenTTD OpenTTD is an open source simulation game based upon Transport Tycoon Deluxe 项目地址: https://gitcode.com/gh_mirrors/op/OpenTTD 点击查看 免费下载 OpenTTD(基于 Transport Tycoon Deluxe 的开源运输模拟游… · 2026/9/25 3:30:49
CRM云端部署与Excel迁移避坑指南 1. DeskcommCRM不是“另一个Excel插件”,而是客户数据主权的重建起点你有没有过这样的经历:销售同事发来一份标着“最新客户清单_V12_终版_真的终版.xlsx”的文件,里面混着三张工作表——一张是去年的线索池,一张是今年Q1跟进记录… · 2026/9/25 3:30:43
创维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 /* 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