2016-06-22 8 views
4

aurelia検証バージョン0.6.8では、isValidフラグを使用してhtmlで検証が合格したか失敗したかを確認できます。働くために使用されるが、私は今持っているので、私は最近、オーレリア検証をアップグレードしたaurelia検証 - [email protected]のisValidの置き換え

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

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を使用します。このような検証プロパティを設定

以下のパッケージ。
- [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

コントローラのvalidateメソッドを呼び出す –

+0

これは私の最初の考えでした。それをbindメソッドに追加することは、私がactivateから呼び出すトリックです。お手伝いありがとう。 –

関連する問題