2016-06-22 73 views
4

在aurelia-validation版本0.6.8中,您可以使用isValid標誌檢查驗證是否在html中通過或失敗。Aurelia驗證 - 在[email protected]中替換isValid

設置驗證屬性是這樣的:

import {Validation} from 'aurelia-validation'; 
@inject(Validation) 

@customElement('base-content') 
export class BaseContent { 
    this.validation = validation; 
    this.validator = this.validation.on(this).ensure('baseContent.Name').isNotEmpty(); 
} 

然後使用isValid方法是這樣的:

<button class="btn btn-success" type="submit" disabled.bind="!validation.result.isValid">Sign In</button> 

這曾經工作,但我最近升級了奧裏利亞驗證,所以我現在有以下軟件包。
- [email protected]
- [email protected]

我正在尋找一種方法來複制我以前做的,但新的軟件包。 這是我可以得到的最接近的,但我不想骯髒檢查時,曾經是一個很好的選擇。

import {inject, NewInstance} from 'aurelia-framework'; 

@inject(NewInstance.of(ValidationController)) 
export class Login { 
    this.controller = controller; 
} 

get isValid(){ 
    if (this.controller.validate().length == 0) { 
     return true; 
    } 
    return false; 
} 
<button class="btn btn-success" type="submit" disabled.bind="!.isValid">Sign In</button> 

任何想法?

回答

3

您可以使用validation-errors自定義屬性來獲取對當前錯誤數組的引用。此數組中的對象形狀如下:{ error: ValidationError, target: Element }

<form validation-errors.bind="errors"> 
    ... 
    ... 
    <button class="btn btn-success" type="submit" disabled.bind="errors.length">Sign In</button> 
</form> 
+0

這就要做了,謝謝。有沒有辦法強制初始加載驗證?當帶有require()的字段爲空時,該按鈕保持啓用狀態。 –

+0

調用控制器上的驗證方法 –

+0

是的,這是我的第一個想法。將它添加到綁定方法中有一招,我從activate中調用它。感謝您的幫助。 –

相關問題