我目前正在使用 Angular 2 的 Reactive Forms 模块,并且我对编辑对象的最佳实践有疑问。
我知道您可以在创建表单时设置初始值,例如:
this.clientForm = this.formBuilder.group({
name: ['', Validators.required],
industry: ['', Validators.required]
});
初始值根据需要为空白。但是,在我的情况下,我有一个子组件,它使用与父级共享的服务。当用户在子项中选择要编辑的实体时,它应该在父项中填写表单。现在我正在使用订阅服务将值填充到表单中,然后在表单更改时更改服务中的值,如下所示:
ngOnInit(): void {
this.buildForm();
this.addEditClientSub = this._clientService.getAddEditClient().subscribe(client => {
if (client != null) {
this.clientForm.patchValue(client, { onlySelf: true });
this.formChangesSub = this.clientForm.valueChanges
.subscribe(x => this._clientService.updateEditClient(this.clientForm.value));
}
});
}
但我觉得必须有更好的方法来处理反应式表单的编辑?没有多少文章涉及使用这些类型的表单编辑模型......
谢谢!