2017-02-05 7 views
1

私はaurelia(バリデーション)チュートリアルに従おうとしています。しかし、私はそれを更新する必要があるという事実を知っています。それでも、私はドキュメントでは、動作させる方法を見つけ出すことができると思っていましたが、これは起こっていません。現在のバージョンのaurelia-validationはどのように使用しますか?

元のコードは次のようになります:

import {inject} from "aurelia-framework"; 
import {Validation} from "aurelia-validation"; 

@inject(Validation) 
export class Edit { 

    constructor(validation) { 
     this.validation = validation.on(this) 
      .ensure("movie.title") 
       .isNotEmpty() 
      .ensure("movie.releaseYear") 
       .isNumber(); 
    } 
} 

これはもう動作するようには思えません。 バリデーションをコンストラクタに入力しようとすると、注入エラーが発生します。

私は文書に行きましたが、検証はもう存在しません。シンボルはもうありません。

私は私のクラスに検証ValidationRulesを注入しようとしましたが、どれもサポート法にまたはを確保します。

私は、ドキュメントの流れに従って、 "on"が最後のメソッド呼び出しであることを試みました。しかし、を保証していないので、が働いているので、私は固執しました。

ありがとうございました。

+0

アウレリアは過去2年間で多くの変更を行ったため、うまくいかないチュートリアルがかなりあります。しかし、Aurelia検証のためのDocHubの公式ドキュメントはあなたのために働くはずです。 http://aurelia.io/hub.html#/doc/article/aurelia/validation/latest/validation-basics – LStarky

+0

btw、あなたは@ lstarkyの答えを受け入れるべきです。b/c彼は正しいです、そして、私のことは間違っています: ) –

答えて

6

Aureliaは過去2年間で多くの変更を行ったため、うまくいかないチュートリアルがかなりあります。しかし、Aurelia検証用のDocHubのofficial documentationが有効です。

重要な注意:

オーレリア検証は、あなたが(this.movie.title)をやろうとしているように、それは、オブジェクトのサブプロパティでうまく動作しないという制限があるようです。あなたは、有効なルールのいずれかに.required()を変更することができます

import {ValidationRules} from "aurelia-validation"; 
export class Edit { 
    constructor() { 
    ValidationRules 
     .ensure("title").required() 
     .ensure("releaseYear").required() 
     .on(this.movie); 
    } 
} 

:代わりに、あなたはこのような何かを行う必要があります。しかし、私は.isNotEmpty()または.isNumber()が有効なルールのリストにあるとは思わない。ドキュメントを参照してください。

+2

申し訳ありませんが、自分の回答にフラグを立てて質問を削除するようになったので、この回答を正しいものとして受け入れてください! –

+0

'isnotEmpty()'を 'required()'(十分に近い)に変更し、 'isNumber()'を 'matches(regex)'に変更しなければなりませんでした。 –

関連する問題