我正在使用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>
目前,当我在验证控制器上调用validate时,result.valid
始终为true。
我需要在html中执行哪些操作才能获得验证信息。验证控制器? (即,您通常会为值字段value.bind="firstName & validate"
。
答案 0 :(得分:1)
通过defaut,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