是否存在可以用于“添加新”和“编辑现有”的表单的可接受模式?

时间:2019-06-01 02:53:40

标签: angular

我肯定有一个普遍的问题,那就是我想拥有一个可用于“添加新条目”或“编辑现有条目”的反应形式。

现在,表单是其自己的组件,并且在提交时,它使用带有新对象的事件发射器。

添加和编辑操作是使用表单的独立组件,它们之间的通信由具有Observable的服务处理。

上面的事情在我可以添加和编辑项目的过程中“起作用”,但是我遇到的某些问题使我觉得我缺少一些东西。

例如,如果要添加很多东西,则在添加第一项后,如何为下一个新添加项重新初始化表单?由于我正在使用事件发射器,因此我永远不知道操作何时或是否成功。

我还发现在等待操作完成时更难处理表单禁用。

我认为为此包含三个组件不是正确的方法,或者也许是,这意味着我处理服务的方式不正确?

1 个答案:

答案 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