我肯定有一个普遍的问题,那就是我想拥有一个可用于“添加新条目”或“编辑现有条目”的反应形式。
现在,表单是其自己的组件,并且在提交时,它使用带有新对象的事件发射器。
添加和编辑操作是使用表单的独立组件,它们之间的通信由具有Observable的服务处理。
上面的事情在我可以添加和编辑项目的过程中“起作用”,但是我遇到的某些问题使我觉得我缺少一些东西。
例如,如果要添加很多东西,则在添加第一项后,如何为下一个新添加项重新初始化表单?由于我正在使用事件发射器,因此我永远不知道操作何时或是否成功。
我还发现在等待操作完成时更难处理表单禁用。
我认为为此包含三个组件不是正确的方法,或者也许是,这意味着我处理服务的方式不正确?
答案 0 :(得分:0)
我认为“经典”方式是使用接口和函数来创建表格,例如
interface IData
{
name:string;
surname:string;
}
createForm(data:any)
{
data = data || {} as IData;
return new FormGroup({
name:new FormControl(data.name,Validators.required),
surname:new FormControl(data.surname,Validators.required),
})
}
所以
this.form=this.createForm(null); //our form is an empy form
data={name:"Name",surname:"Surname"}
this.form=this.createForm(data); //our form is form with data