我想要对响应式表单中的一个表单组进行 pipe
操作。
接着,我希望可以对这个表单组中的各个控件进行一些检查。
以下是我定义表单的方式:
myForm = this.formBuilder.group({
myFormNameDrop: this.formBuilder.group({
myName:['',Validators.required],
myDrop:['era']
}),
style:[''],
userId:[this.user_id]
});
这是我尝试创建的管道
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
我遇到了两个错误。
TypeError: Cannot read property 'pipe' of undefined
关于this.results = this.myForm.value.myFormNameDrop.valueChanges.pipe(
另外,VS Code显示了一个警告:filter(formdata => formdata.myName.length > 0),
:属性myName
在类型'{}'
上不存在。
在这种情况下,我该如何访问表单组和表单组中的控件?我使用Angular 6。
谢谢
this.myForm.value.myFormNameDrop.valueChanges.pipe(
更改为(this.myForm.controls['myFormNameDrop'] as FormGroup).valueChanges.pipe(
。你应该订阅控件更改而不是值。值只是控件的普通值。 - karoluS