updatOn: 'blur'
Angular7 アプリケーションで
フォーム非同期検証を使用しています。スタックブリッツ
この状況では、名前が一意かどうかを確認する必要があります (非同期検証)。
this.myForm.get('name').statusChanges.subscribe(status => {
if (status === 'VALID') {
// to save the name to database.
} else {
// to show some errors.
}
});
問題は、このコードをどこに置くかです。
現在の方法
子コンポーネントでこれを試しました
@Input()
set myForm(myForm: FormGroup) {
this._myForm = myForm;
this.myForm.get('name').statusChanges.subscribe(status => { // to subscribe statusChanges here.
if (status === 'VALID') {
// to save the name to database.
} else {
// to show some errors.
}
});
}
get myForm() {
return this._myForm;
}
_myForm: FormGroup
出来た。しかし、フォーム検証を行うための属性が少なくとも 10 個あります。これにより、 this に追加されるコードが多すぎる@Input() set myForm() {}
ため、別の関数でこれを行う必要があります。
@Input
というわけで、属性の statusChange をサブスクライブするのをやめました。ここにない場合、どこでこれを行う必要がありますか?
また、 の statusChange をサブスクライブできません。ngOnInit
原因の値は で定義されていませんngOnInit
。
誰でも私を助けてください。