如何让 alpaca 条件依赖使用函数而不是数组?

How do I make alpaca conditional dependencies use a function instead of an array?

我有一个alpaca schema with an array of conditional dependencies。数组中的每个值都有一个已知的前缀。除了使用数组,是否可以使用 function/conditional 检查特定字段中的值以确定该值是否具有已知前缀并导致显示相关字段?

这个问题(conditionally require a field)与我面临的问题(如何获取和检查函数中字段的值)有关。

注意:一个站点可能被归类为不止一种类型,因此值上有TypePrefix0

这是有问题的代码,目前是这样的:

"schema": {
  "properties": {
    "tpl": { "type":"string" }, 
    "site": { // optionTree
      "type":"string",
        "title":"Site",
        "required": true
    },                           
    "sourceType": {
      "type":"string",
      "title":"Source Type",
      "enum":['area','group'],
    },
    "dataType": {
      "type":"string",
      "title":"Data Type",
      "enum":['people','vehicles', '*']
    },
  },
  "dependencies": {
    "dataType": ["sourceType", "site"]
  }
},
"options": {
  "fields: { // reduced to relevant parts
    "dataType": {
      "dependencies: {
        "sourceType": "group",
        // site values shown here are not actual values used in production
        "site": ["TypePrefix0.site0", "TypePrefix0.site1", "TypePrefix0.site2", /*...*/] 
        // how do/can I replace the array with a function/condition:
        // (site.value.startsWith("TypePrefix0.")) : true
      }
    }
  }
}

与其使用 optiontree 控件,不如将其拆分为三个 select 控件。 (第一个是站点类型。另外两个是特定类型的站点。)使第二个和第三个 select 取决于第一个的特定值。这样,您就可以取消第二个和第三个 select 控件的值中的前缀。