Angular 角度2反应形式-我喜欢模型 用例

Angular 角度2反应形式-我喜欢模型 用例,angular,angular2-forms,Angular,Angular2 Forms,让我们想象一下,您构建了一个表单,用户可以在其中选择明天要烹饪的东西。用户已创建了喜爱的食物列表。因此,用户看到一个屏幕,在那里他可以输入他想要的任何食物,但也可以选择之前定义的“favorit foods”之一 因此,服务器会被询问表单中显示的最喜欢的食物列表,但表单也会显示一个空行,用户可以在其中输入他喜欢吃的任何东西 每行前面都有一个复选框,用户可以在其中选择要烹饪的菜肴 代码 在组件的TypeScript中,我真的很想使用包含一个输入/选择的盘的DishModel。由于用户可以选择多个碟

让我们想象一下,您构建了一个表单,用户可以在其中选择明天要烹饪的东西。用户已创建了喜爱的食物列表。因此,用户看到一个屏幕,在那里他可以输入他想要的任何食物,但也可以选择之前定义的“favorit foods”之一

因此,服务器会被询问表单中显示的最喜欢的食物列表,但表单也会显示一个空行,用户可以在其中输入他喜欢吃的任何东西

每行前面都有一个复选框,用户可以在其中选择要烹饪的菜肴

代码 在组件的TypeScript中,我真的很想使用包含一个输入/选择的盘的
DishModel
。由于用户可以选择多个碟子,因此整个模型是一组
DishModel
s

在某一点上,我已经将服务器的JSON响应和所有我喜欢的碟片转换为一个
DishModel
s数组,以使它们与一个“空的”
DishModel
一起显示

为此,我循环使用
DishModel
s,并使用
FormBuilder
创建一个数组组。此时,我将模型属性指定给表单控件。 当表单提交后,我想继续使用我的模型,因此我必须返回我的
DishModel
数组中的所有表单值。这感觉很糟糕

为了简化将表单数组转换回模型的过程,我在模型中创建了一个构造函数来处理这个问题。但现在这意味着我真的需要注意,在不更改其他名称的情况下,既不要更改模型私有属性名称,也不要更改表单控件名称。。。这不是一个好的设计。在这一点上,“形式的模型方式”感觉更好,因为我不需要将模型转换为数组来将其转换为形式,反之亦然来处理它

是这样做的,还是有任何可能的方法来保持被动形式,但在整个应用程序中使用模型

普朗克: