SuperAPI AI 工具集

umbraco-validation-context

编程与开发

查看项目

更新于 10-15 21:33

技能介绍

用途:UmbValidationContext 为 Umbraco 后台表单提供集中式验证,使用 JSON Path 标记字段,统一管理验证消息,并支持客户端与服务端验证,同时可对选项卡、区块进行响应式错误计数,适合多步骤表单、工作区编辑器等需要完整验证反馈的界面。

主要能力:创建验证上下文(new UmbValidationContext(this));通过 validate() 校验所有已绑定字段;访问 messages 消息管理器,使用 addMessage(source, path, message, key) 添加消息、removeMessagesBySource('server') 按来源移除消息;用 messagesOfPathAndDescendant('$.form.tab1') 观察某路径及其子路径的消息,或用 messages.messages 观察全部消息。消息接口为 UmbValidationMessage:source('client' | 'server' | 自定义)、path(JSON Path)、message、key。

使用方式:从 @umbraco-cms/backoffice/validation 导入 UMB_VALIDATION_CONTEXT、umbBindToValidation、UmbValidationContext。用 umbBindToValidation(this, '$.form.name', this._name) 指令绑定输入,并用 <uui-form-validation-message> 包裹输入框。保存时先 await this.validation.validate() 判断是否通过;服务端返回错误后,用 addMessage 配合 crypto.randomUUID() 添加,并在新一轮验证前清除旧的服务端错误。JSON Path 示例:$.form 为根、$.form.name 为字段、$.form.tab1.email 为 tab1 字段、$.form.items[0].value 为第一项值。

限制与前提:资料未说明具体版本要求、收费或价格信息,暂未提供。实现前建议先获取官方最新文档与 Umbraco 源码中的示例:Validation Context Dashboard 位于 /Umbraco-CMS/src/Umbraco.Web.UI.Client/examples/validation-context/,Custom Validation Workspace Context 位于 /Umbraco-CMS/src/Umbraco.Web.UI.Client/examples/custom-validation-workspace-context/。相关基础技能为 umbraco-state-management(观察验证状态)与 umbraco-context-api(消费验证上下文)。