使用 Aurelia Validation 验证列表

Using Aurelia Validation to validate a list

我正在使用 Aurelia 验证来验证我的 Aurelia 项目中的项目。我目前正在尝试验证一个数组是否至少包含 1 个项目。我设置了以下验证规则:

ValidationRules
    .ensure((x: Appraisal) => x.objectives)
    .minItems(1)
    .withMessage("You must add at least one objective before submitting.")
    .on(Appraisal);

我有以下 html:

<div class="au-animate" repeat.for="objective of appraisal.objectives">
    <compose view-model="./appraisal-objective-item" model.bind="{ objective: objective, appraisal: appraisal }" />
</div>

目前,当我在验证控制器上调用验证时,result.valid 始终为真。

我需要在 html 中做什么才能让验证控制器 'captured' 进行验证? (即,您通常会将 value.bind="firstName & validate" 作为值字段。

默认情况下,aurelia-validation 仅验证绑定的属性。如果要验证整个实体,即使某些属性未在数据绑定中使用,也必须使用控制器的 addObject(object, rules?) 方法。

你的情况:

this.appraisal = new Appraisal();
this.validationController.addObject(this.appraisal);

不要忘记在需要时调用 removeObject 方法。 (例如,如果您更改 appraisal 属性 的值。)

您可以在此处找到有关实体验证的更多详细信息: http://aurelia.io/hub.html#/doc/article/aurelia/validation/latest/validation-basics/9