使用服务的模板驱动表单和响应表单之间的区别

时间:2019-06-25 17:03:00

标签: angular angular-material angular7 angular-forms

我想知道何时应该使用模板驱动的表单而不是响应式表单。我知道基于该问题的理论(What are the practical differences between template-driven and reactive forms?),但我不知道Angular Material使用哪种理论。我一直对使用哪个有疑问。

有人可以帮我吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

作为一名专注于Angular的开发人员,我建议始终使用反应式表单设置。

开发人员会争论,但请相信我,以后您会为自己省去头痛。内塔内尔B在这里也写过:Why It’s Time to Say Goodbye to Angular Template-Driven Forms

假设您想要一个非常简单的输入,您可能会想直接使用

  • ngModel
  • 模板变量
  • @ViewChild

暂时还可以。

但是,假设您需要添加:

  • 验证
  • 关注变化
  • 以编程方式更新值

所有这些都需要您依赖于已选择的用于访问输入的方法并围绕该方法进行编码。

Reactive forms是一个预先构建的API,可为每个需求带来一个标准。

答案 1 :(得分:0)

模板驱动的表单

  • 开发静态表单时,请使用模板驱动的表单。静态表示表单的结构和逻辑是固定的。例如。表单字段的数量没有变化,不同用户角色的表单验证规则是相同的,等等。
  • 例如登录表单,重设密码表单,用于输入和编辑地址数据,订单数据以及类似修订数据结构的表单。

反应形式

  • 在表格应支持动态数据结构和逻辑的情况下,使用反应式表格方法。例如动态调查表单,添加/删除0..n标签或电话号码的表单,为不同用户角色提供不同验证的表单等。

  • 反应形式的结构和逻辑主要在TypeScript中实现。相应的HTML工件仅引用TypeScript中定义的表单控件。在最高扩展阶段,可以在运行时基于数据结构完全生成反应形式。

有关更多详细信息,请参阅以下link