[英]Angular form group vs form control and form builder in Reactive Forms
[英]How to access form control and form group in angular reactive form
我想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
謝謝
您沒有正確獲取表單控件。 在FormGroup
對象上使用get()方法來獲取formControl
this.results = this.myForm.get('myFormNameDrop').valueChanges.pipe(
debounceTime(400),
.........................
);
編輯:
要訪問myName
您可以按照以下步驟進行操作:
this.myForm.get('myFormNameDrop').get('myName').value
另外,如果僅對myName
感興趣,則可以直接監視myName
valueChanges
,而不是監視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( ...
this.myForm.controls['myFormNameDrop']
在模板中工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.