我想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
我遇到两个错误。
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控件?我使用角度6
谢谢
答案 0 :(得分:1)
您没有正确获取表单控件。在FormGroup
对象上使用get()方法来获取formControl
this.results = this.myForm.get('myFormNameDrop').valueChanges.pipe(
debounceTime(400),
.........................
);
编辑:
要访问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)
);
答案 1 :(得分:1)
更改此行:
public function actionExportcsv() {
header('content-type: application/pdf');
header('Content-Disposition: attachment;filename="export.pdf"');
// code for your pdf
exit();
}
至:
this.results = this.myForm.value.myFormNameDrop.valueChanges.pipe( ...