2017-08-25 3 views
1

formGroup内の単一の値が変更されるとすぐに呼び出されるformGroupに単一のバリデータを追加できますか? (角型:単一の値が変更された場合、完全なフォームグループを検証する

'group': this.formBuilder.group({ 
    'value1': [''], 
    'value2': [''], 
    'value3': [''] 
    }, [MyCustomValidator]), 

をしかしバリがformGroup内部で起こって変化で呼び出されていない、私は個別に各フィールドにバリデータを追加し、control.parentを呼び出すことができます。

私はそれは次のようになりますだと思いますこれは適切な解決策のようではないようです。

答えて

1

は、それがそれぞれの時間をvalue1とvalue2を発射していますそれらの値が変更されます:

this.fb.group({ 
      value1: ['', [this.validateService.isNumber]], 
      value2: ['', [this.validateService.isNumber, this.validateService.isLessThanHundred]], 
     }, { validator: this.validateService.countInputs }); 

plunker

+1

に行きたいという公式な方法ですが、私は各フィールドを評価しなければならないと考えていませんでしたので、グループの評価も同様に解消されるようになりましたが、 – Nickolaus

0

角度からOnChangesインターフェイスを使用できます。より詳細なドキュメントについては

ngOnChanges(changes: SimpleChanges){ 
    // call the validation method 
    // this.formBuilder.group.valid property 
} 

here

ngAfterViewChecked() { 
this.formBuilder.group.valueChanges.subscribe(()=> { 
    //do whatever you want; eg: enable the save or update button 
}); 
} 

からAfterViewChecked here OR 使用をクリックしてください角度ライフサイクルフック用hereをクリックしてください。バリデータを使用して、このようにして

+0

をこれはオプションかもしれないが、それは溶液、少しハックようです@Vegaは – Nickolaus

関連する問題