2017-10-09 138 views
2

我正在使用Aurelia驗證來驗證我的Aurelia項目中的項目。我目前正在試圖驗證一個數組至少包含1個項目。我有以下的驗證規則設置:使用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> 

目前,當我打電話確認我的驗證控制器,該result.valid始終是真實的。

我需要在我的html中做什麼,以便驗證控制器「驗證」驗證? (也就是說,對於某個值域,您通常需要使用value.bind="firstName & validate"

回答

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

+0

謝謝。我結束了使用addObject。我不確定如何在UI中渲染我的錯誤,但是我現在通過從控制器獲取錯誤列表手動完成它。 – Viqas