2

我有一个特定的用例,我们使用几个 JSON 模式来创建表单@jsonforms/core,并结合使用@jsonforms/angular( jsonforms.io )。验证按照建议进行ajv

为了尽可能通用(我希望每个表单没有自定义代码),我为每个表单构建了单独的数据和 UI 模式。并且在将其发布到 API(在 NestJS 中)时,我再次使用特定模式验证有效负载以实现数据一致性(也使用ajv),然后再保存到数据库中。

但是,对于一种特定的形式(也可能是未来的形式),值的验证如下。允许发布空表格,但我们想建议/警告用户该表格尚未完全填写。最好带有模态。所以:具体字段有些需要,但不是严格需要

JSON 模式/JSON 模式表单/AJV 中是否有办法显示警告但允许表单值通过验证?是否有错误处理级别,或者可能为此使用严格模式?

这就是我创建 AJV 的方式,无论是在前端还是后端(TypeScript):

ajv = createAjv({
  schemaId: 'auto',
  allErrors: true,
  jsonPointers: true,
  errorDataPath: 'property',
});

数据模式示例(简化),JSON:

{
  "type": "object",
  "properties": {
    "group1": {
      "type": "object",
      "properties": {
        "level1": {
          "type": "integer",
          "enum": [0, 1, 2, 3, 4, 5, 6]
        },
        "level2": {
          "type": "integer",
          "enum": [0, 1, 2, 3, 4, 5, 6]
        },
        "level3": {
          "type": "integer",
          "enum": [0, 1, 2, 3, 4, 5, 6]
        },
        "level4": {
          "type": "integer",
          "enum": [0, 1, 2, 3, 4, 5, 6]
        }
      },
      "additionalProperties": false,
      "required": []
    },
    "group2": {
      "type": "object",
      "properties": {
        "level1": {
          "type": "integer",
          "enum": [0, 1, 2, 3, 4, 5, 6]
        },
        "level2": {
          "type": "integer",
          "enum": [0, 1, 2, 3, 4, 5, 6]
        },
        "level3": {
          "type": "integer",
          "enum": [0, 1, 2, 3, 4, 5, 6]
        },
        "level4": {
          "type": "integer",
          "enum": [0, 1, 2, 3, 4, 5, 6]
        }
      },
      "additionalProperties": false,
      "required": []
    }
  }
}

有人可以指出我正确的方向吗?

4

0 回答 0