满足 Aurelia 中的规则验证

satisfiesRule Validation in Aurelia

我想在 Aurelia 中有一个验证规则。我有一个布尔数组(WeekDays),当此数组中的 7 个项目中的两个项目为真并且也单击了 isAutomatic 复选框时,它有效并且我可以保存数据。例如我的验证规则:

private static VALIDATION_RULES = ValidationRules
.ensure((tc: client.TestConfig) => tc.activateOnWeekDay)
.satisfiesRule('minTwoDaySelected').when((tc: client.TestConfig) => tc.isAutomatic)
.rules

我想编写 minTwoDaySelected 函数,returns 如果至少选择了数组的两项,则该函数为真。 编写它的模式在这里:

    ValidationRules.customRule(
      'minTwoDaySelected',
       .....
       .....
    )

我不知道如何完成它。你能帮帮我吗?

我卖了它:

ValidationRules.customRule(
  'minTwoDaysSelected',
  (obj) => {
    let i: number
    let count: number = 0
    for ( i = 0;i < 7;i++) {
      if (obj[i]) {
        count++
      }
    }

    return count > 1
  },
  'Minimum two days of ${$displayName} must be selected.',
  (obj) => ({ obj })
)

private static VALIDATION_RULES = ValidationRules
  .ensure((tgc: client.TestGroupTestConfig) => tgc.activateOnWeekDay).displayName('tests.details.week-days')
    .required().satisfiesRule('minTwoDaysSelected').when((tgc: client.TestGroupTestConfig) => tgc.isAutomatic)
  .rules

并且在 html 文件中(查看):

<input type="hidden" value.bind="batteryConfig.activateOnWeekDay & validate">