如何通过将字段绑定到多个依赖项来显示基于 alpaca 或条件的相同字段

How to show same field based on an or condition on alpaca by binding a field to multiple dependencies

我正在使用 alpajajs 呈现 HTML 表单。我的要求是根据复选框显示某些字段。我的表单中有三个复选框,如果选中任何复选框,我想显示一些字段。

我在 conditional dependencies and couldn't find a soution to my problem. I can solve this by creating same fields with different names but that's against dry principle 浏览了羊驼文档。

我的代码如下所示。

"myCheckBox1": {
    "type": "boolean"
},
"myCheckBox2": {
    "type": "boolean"
},
"usernameField": {
    "label": "Username *",
    "order": 6,
    "type": "string"
    "disallowOnlyEmptySpaces": true,
    "showMessages": false,
    "disallowEmptySpaces": true,
}

如果选中了 myCheckBox1 或 myCheckBox2,我想显示 usernameField。我更改了架构以显示条件依赖性。

"dependencies": {
  "usernameField": [
    "myCheckBox1"
  ],
  "usernameField": [
    "myCheckBox2"
  ]
}

但是只考虑最后给定的条件,即只有当 myCheckBox2 被选中时才会显示 usernameField,而不考虑 myCheckBox1。我也试过下面的代码:

"dependencies": {
  "usernameField": [
    "myCheckBox1", "myCheckBox2"
  ]
}

但是计算结果为 and condition。有没有办法使用不同的依赖项来显示相同​​的字段?

为什么不使用一组使用枚举类型的复选框,如下所示:

// schema
"check": {
    "title": "Select...",
    "type": "string",
    "enum": ["First", "Second"]
},
...
// options
"check": {
    "type": "checkbox"
}

然后你使用这样的条件依赖:

"username": {
   "dependencies": {
      "check": [
          'First', // if First is selected
          'Second', // if Second is selected
          'First,Second' // if both First and Second are selected
      ] 
   }
}

这是一个有效的 fiddle

如果这不是您要找的,请告诉我。