Angular 如何创建与JSON不同的角度形式,JSON本质上是动态的?

Angular 如何创建与JSON不同的角度形式,JSON本质上是动态的?,angular,html,forms,twitter-bootstrap-3,Angular,Html,Forms,Twitter Bootstrap 3,假设今天我有一个JSON,它有两个字段- 1.姓名 2.年龄 一个月后,一个新字段被添加到JSON中,假设DOB。 2个月后,又添加了一个字段-地址,其类型为对象本身 现在使用JSON 1.姓名 2.年龄 3.DOB 4.地址- 4.1. PO 4.2. City 4.3. State 这里的场景是,JSON每天都在变化,将来也会发生变化。现在拥有手工制作的UI(即每次添加新的输入字段)是一件痛苦的事情 请告诉我一些方法或提供一个解决

假设今天我有一个JSON,它有两个字段-

1.姓名

2.年龄

一个月后,一个新字段被添加到JSON中,假设
DOB
。 2个月后,又添加了一个字段-
地址
,其类型为对象本身

现在使用JSON

1.姓名

2.年龄

3.DOB

4.地址-

          4.1. PO
          4.2. City
          4.3. State
这里的场景是,JSON每天都在变化,将来也会发生变化。现在拥有手工制作的UI(即每次添加新的输入字段)是一件痛苦的事情

请告诉我一些方法或提供一个解决方案,我的UI将根据给定的JSON进行更改。

对于初学者来说,官方文档中的部分是一个很好且有趣的阅读。由于您必须维护大的和有点复杂的表单,我将明确地研究。它们不同于模板驱动的表单,因为它们是模型驱动的。对数据模型所做的任何更改都将使用oberservables(streams)的强大功能在表单中反映出来

当我们深入研究这个问题时,我们发现有第三个概念叫做:

构建手工制作的表单可能既昂贵又耗时,特别是当您需要大量表单时,它们彼此相似,并且经常更改以满足快速变化的业务和法规要求

Angular中的动态表单基本上是动态创建的被动(模型驱动)表单。关键是元数据的动态数据绑定,用于呈现表单,而无需对特定字段进行任何硬编码假设。这个概念很难掌握,但从长远来看绝对值得。我的建议是从角度教程开始,这样你至少知道它是如何工作的以及为什么工作的

回到你的问题上来;有很多图书馆为你做了大部分艰苦的工作。你可能想看看。Formly允许您使用动态表单的功能创建JSON支持的表单。创建表单字段非常简单:

{
    key: 'email',
    type: 'input',
    templateOptions: {
        type: 'email',
        label: 'Email address',
        placeholder: 'Enter email',
        required: true,
    }
}
为了更进一步,我构建了一个可用于通过链接方法生成格式兼容的JSON格式的。它允许干净的代码和类型提示,使得不可能创建错误的表单字段配置。我们可以使用form builder创建与上述相同的字段:

builder
  .input('email', 'text')
  .label('Email address')
  .placeholder('Enter email')
  .required();
你可以玩这个游戏


祝你好运

循环响应并基于新键创建新的FormControl?你试过了吗?请你拿一个动态JSON并分享一段代码片段好吗