Angular——在不是所有字段都来自用户输入的情况下提交表单



我刚刚学习了Angular表单,我设法从教程中制作了一个登录表单和一个注册表单,这些表单很容易。但是现在我想做一个表单,不是所有的字段(表项)都需要由用户输入,我对这一点很陌生,我甚至不知道这是否可能。

例如,假设我建立了一个社交媒体应用程序,用户登录后发布了某种类型的帖子。当然,这篇文章将放在与用户表不同的一个数据库表中,用户表中存储文章的内容和作者。那么,如果我可以从用户在表单中键入的内容中获得帖子的内容,那么在提交表单之前如何访问有关用户的信息呢?或者可以在后面"添加"它吗?

一切皆有可能,这实际上是相当常见的。

回答你的问题:在这个点上,用户发布了一些他通常已经登录的东西。当在整个应用程序范围内使用服务时,在填写表单时就可以获得用户的信息。

  • 您可以使用初始化函数对部分(或全部)字段初始化数据。
  • 你可以在实际的http调用时填写请求中的数据(这是更好的选择)。

给一个对象添加更多的值是很容易的:

{ ...this.formData, ...this.additionalData }

更多提示:

  • 您可能希望使用onInit()方法中的后端服务请求来填充某些表单(如编辑表单)。
  • 你可以制作相当简单的模板驱动表单,但是如果你想制作更复杂的、动态的、可测试的表单,你可能需要看看"响应式表单"。
  • 如果你只想在typescript代码中改变表单中的某些值,你可以在表单上使用. patchvalue()而不是. setvalue(),后者需要所有表单字段。我可以推荐Deborah Kurata关于表格的课程。

我很乐意回答你可能有的更具体的问题。有乐趣的学习角度,创建良好的和用户友好的表单是一个很好的技能。

相关内容

最新更新