模型驱动/反应表单:从模型到FormGroup的自动映射?

Eik*_*nds 5 validation typescript angular2-forms angular2-template angular

有没有办法从模型中自动创建FormGroup?如果我有一个具有多个属性的模型:

型号:人

firstName: string,
lastName: string,
street: string
country: string
....
Run Code Online (Sandbox Code Playgroud)

我想从中创建一个简单的FormGroup:

表格:FormGroup

firstName: FormControl,
lastName: FormControl,
street: FormControl,
country: FormControl
....
Run Code Online (Sandbox Code Playgroud)

对我来说似乎是"脏"的,为模型中的每个属性明确定义FormControl/FormGroup/FormArray:

formBuilder.group({
  firstName: person.firstName,
  lastName: person.lastName,
  street: person.street,
  country: person.country,
  ...
});
Run Code Online (Sandbox Code Playgroud)

每次来自后端的API发生变化时,我都要调整模型和表单映射.是否有某种生成器可以帮助我自动映射/创建FormGroup?

Ami*_*ani 1

formBuilder.group({});

person.forEach(
        (prop) => {
            formBuilder.addControl(prop , new FormControl(person[prop], Validators.compose([ Validators.required])));
        }
    );
Run Code Online (Sandbox Code Playgroud)

这不是一个完整的解决方案,因为验证器肯定会针对每个属性进行更改。