反応フォームのフォームグループをpipe
したいと思います。
次に、このグループの個別のコントロールについていくつかのチェックを行いたいと思います。
これが私のフォームの定義方法です
_ myForm = this.formBuilder.group({
myFormNameDrop: this.formBuilder.group({
myName:['',Validators.required],
myDrop:['era']
}),
style:[''],
userId:[this.user_id]
});
_
そして、これがpipe
です。
_this.results = this.myForm.value.myFormNameDrop.valueChanges.pipe(
debounceTime(400),
distinctUntilChanged(),
filter(formdata => formdata.myName.length > 0),
switchMap( formdata => this.shoesService.details(formdata.myName)),
shareReplay(1)
);//pipe
_
2つのエラーが発生します。 _TypeError: Cannot read property 'pipe' of undefined
_について_this.results = this.myForm.value.myFormNameDrop.valueChanges.pipe(
_について
vSコードはfilter(formdata => formdata.myName.length > 0),
に関する警告を表示します:プロパティmyName
はタイプ_'{}'
_に存在しません
このような場合、formGroupsとformGroupsのコントロールにどのようにアクセスできますか? angular 6
ありがとう
フォームコントロールを適切に取得していません。 FormGroup
オブジェクトで get() メソッドを使用してformControl
をフェッチします
_this.results = this.myForm.get('myFormNameDrop').valueChanges.pipe(
debounceTime(400),
.........................
);
_
EDIT:
myName
にアクセスするには、次のようにします。
this.myForm.get('myFormNameDrop').get('myName').value
また、myName
だけに関心がある場合は、valueChanges
を監視する代わりに、myName
のmyFormNameDrop
を直接監視できます。
_this.results = this.myForm.get('myFormNameDrop').get('myName').valueChanges.pipe(
debounceTime(400),
distinctUntilChanged(),
filter((myName) => myName.length > 0),
switchMap(myName => this.shoesService.details(myName)),
shareReplay(1)
);
_
この行を変更します。
this.results = this.myForm.value.myFormNameDrop.valueChanges.pipe( ...
へ:
this.results = this.myForm.controls.myFormNameDrop.valueChanges.pipe( ...