2017-06-13 3 views
0

最近Angular 2と反応性フォームで作業を開始しました。私が達成しようとしているのは単純です:フォーム内に配列を作成し、新しいオブジェクトをユーザーにプッシュできるようにします(ユーザーが新しいアドレスを追加できるユーザーアドレスのリスト - 標準のFormArray)。それは非常にシンプルです(そしてそれはすべて文書でうまく説明されています)が、私は自動的にユーザーの入力を検証できるようにしたいと考えています。私は単にこのようなグループ押すことによってこれを行うことができます知っている:ブランクアドレスの1行の初期化を使用して、有効性を確認することができます

this.formBuilder.group({ 
    country: ['', Validators.required], 
    city: ['', Validators.required], 
    ... 
}) 

を私はアドレスのインスタンスを表すモデルを持っていると私はそのようにそれを使用したいと思います:

this.formBuilder.group(new Address()) 

それは実際に私が今どのように(検証なしで)それを行うのかです。

質問:私は空白アドレスのこの1行の初期化を使用することができますし、どういうわけか新しい空白アドレスを押すたびにバリデータを明示的に定義せずに検証しますか?

私の質問が十分明確でない場合は、私はあなたの質問にすべて答えます。

+0

の繰り返しの割り当てを考慮すれば

//helper method private attachValidators(address: FormGroup)/*: ValidationErrors */ { for (let ctrlName of Object.keys(address.controls)) { address.get(ctrlName).setValidators(Validators.required); } } 

は、あまりにも多くのことかもしれ.. –

答えて

0

これはあなたのためのオプションが考えられます。

this.formBuilder.group(new Address(), 
         {validator: (fg: FormGroup) => this.attachValidators(fg)}) 

は、基本的にはアドレス収集の個々のコントロールを通過し、必要に応じて個々のプロパティを設定しますバリデータカスタムバリデータを設定します。下記を参照してください:あなたは、あなたが手動で検証する必要があるバリ

+1

これは何をしますか??それはどのように質問に答えますか?コードをばらまくだけではありません。あなた自身を説明してください! https://stackoverflow.com/help/how-to-answer – Rob

関連する問題