我想初始化对 Angular 表单提交的订阅,而不是值更改。基本上,在我的脑海里,我想要这样的东西:
ngOnInit() {
this.formGroup.submit.pipe(
mergeMap(this.service.update(formVal)),
).subscribe(this.val$);
}
这样我就可以直接从表单开始初始化对表单更改的订阅,值的来源会发生变化。这可能吗?为什么或者为什么不?
初始化对 Angular 表单提交的订阅,而不是值更改
有办法做到这一点。创建表单控件(FormControl或FormGroup)FormArray时,还可以指定updateOn属性,该属性指示何时更新表单控件。当表单控件更新时,它的valueChanges和statusChanges主题也会发出。
考虑到这一点,您可以FormGroup像这样创建您的实例:
this.formGroup = new FormGroup({ /* ... controls ... */ }, { updateOn: 'submit' })
// Getting notified about changes
this.formGroup.valueChanges.subscribe(formValue => {})
的可能值为updateOn:change和。blursubmit
这是一篇深入探讨 Angular Forms 的文章。