我正在使用Aurelia验证来验证我的Aurelia项目中的项目。目前,我正试图验证数组是否至少包含一个项。我设置了以下验证规则:
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始终是真的。
我需要在html中做些什么,这样验证控制器才能“捕获”验证?(也就是说,通常使用value.bind="firstName & validate"作为值字段。
发布于 2017-10-10 07:39:32
通过defaut,aurelia验证只验证绑定的属性。如果要验证整个实体,即使某些属性没有用于数据绑定,也必须使用控制器的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
https://stackoverflow.com/questions/46644688
复制相似问题