如何为formControl添加元数据?

时间:2019-11-06 13:45:36

标签: angular angular5 angular8

我有一组FormGroup形式的表单;

let forms = [this.form1, this.form2];

每种形式都有几个控件:FormControl

如何为元素类型(输入,文本区域,选择)的FormControl添加附加数据?

例如,我有表格:

export class ProfileEditorComponent {
  profileForm = this.fb.group({
    firstName: [''],
    lastName: [''],
    address: this.fb.group({
      street: [''],
      city: [''],
      state: [''],
      zip: ['']
    }),
  });

我怎么知道zip字段下应该是input还是select

如何在嵌套形式的模板中迭代profileForm

1 个答案:

答案 0 :(得分:1)

在问题编辑之前已回答

更新

以下称为hereenter link description here

中所述的模块增强

这允许从第三方模块扩充(例如,添加方法pr属性)类

原始

我们需要有一个警告验证器,而Angular并没有提供。 我们要做的是在typings.d.ts文件中执行以下操作,该文件必须位于应用程序的根目录中。

declare module '@angular/forms' {

  export interface AbstractControl {
    warnings: ValidationErrors | null;
  }
}

ValidationErrors是我们的自定义类。

您可以做类似的事情

declare module '@angular/forms' {

  export interface AbstractControl {
    elementType: string; // input, textarea, select
  }
}

这样,您在应用程序中的所有AbstractControls都将拥有属性elementType

您也可以使用FormControl代替AbstractControl