0

我想根据数组中的选择显示表单字段,以便能够根据选择动态添加项目。

什么有效:

没有围绕这个工作的数组。请参见下面的代码:

{
      "schema": {
        "type": "object",
        "properties": {
                "accessory": {
                  "title": "Type",
                  "type": "string",
                  "default": "one",
                  "oneOf": [
                    { "title": "First", "enum": ["one"] },
                    { "title": "Second", "enum": ["two"] }
                  ],
                  "required": true
                },
                "setName": {
                  "type": "string"
                },
                "Second Name": {
                  "type": "string",
                  "description": "Only displayed if 'two' is selected",
                  "condition": {
                      "functionBody": "return model.accessory === 'two';"
                  }
                
              
            }
          }
        
      }
    }

什么不起作用:

但是一旦我在它周围包裹一个数组,条件就不再起作用了。

{
  "schema": {
    "type": "object",
    "properties": {
      "accessories": {
        "title": "Accessories",
        "type": "array",
        "items": {
          "title": "Accessory",
          "type": "object",
          "properties": {
            "accessory": {
              "title": "Type",
              "type": "string",
              "default": "one",
              "oneOf": [
                { "title": "First", "enum": ["one"] },
                { "title": "Second", "enum": ["two"] }
              ],
              "required": true
            },
            "setName": {
              "type": "string"
            },
            "Second Name": {
              "type": "string",
              "description": "Only displayed if 'two' is selected",
              "condition": {
                  "functionBody": "return model.accessory === 'two';"
              }
            }
          }
        }
      }
    }
  }
}

我还尝试了以下条件:

"return model[arrayIndex].accessory === 'two';"

"return ['two'].includes(model.accessory);"

4

1 回答 1

0

这个有效:

"Second Name": {
    "type": "string",
    "description": "Only displayed if 'two' is selected",
    "condition": "model.accessories[arrayIndex].accessory=='two'"
}
于 2021-06-05T20:23:17.847 回答