Angular 6表单创建

时间:2018-10-01 11:27:54

标签: angular angular6 angular-forms

我正在使用Angular 6创建一个表单,但是在表单中,我有50个或更多的字段(而不是'ts'文件中的字段),所以我必须声明所有字段,例如,某些情况下,我使用的是反应式表单

userCreation = new FormGroup({
  firstName: new FormControl(''),
  lastName: new FormControl(''),
  ........
  so on
});

如果我使用的是ngModel模板驱动的模板,还必须定义对象中的所有文件

userCreation: {
  firstName: any;
  lastName: any;
  ...........
  so on
};

反正有,所以我可以阻止此声明,或者必须遵循它,这是强制性的吗?

2 个答案:

答案 0 :(得分:0)

您可以在其他文件中声明对象,例如:

Person.ts

export class Person {
    firstname: string;
    lastName: string;
    ...
}

您的主要.ts文件:

let fg = this.formBuilder.group(
    new Person()
)

答案 1 :(得分:0)

设置formGroup并将这些控件名称与formControlName映射到html元素所需的角反应式表单样式,否则会出现错误

related Error: Cannot find control with name: '....'

设置50表单控件可能很困难,因此,因为您需要设置formGroup和init并为该表单组创建html模板,因此对于这种情况,您可以创建表单动态阅读此(Demystifying dynamic Forms in Angular)或使用{ {3}}

来自的角度模板可以是可以设置橡皮擦的另一种选择 反应形式(但我仍然建议对复杂形式使用反应形式) ngx-formly

read this