Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何为formControl添加元数据?_Angular_Angular5_Angular8 - Fatal编程技术网

Angular 如何为formControl添加元数据?

Angular 如何为formControl添加元数据?,angular,angular5,angular8,Angular,Angular5,Angular8,我有一个表单数组FormGroup let forms = [this.form1, this.form2]; 每个表单都有几个控件:FormControl 如何向FormControl添加附加数据,例如元素类型(输入、文本区域、选择) 例如,我有以下表格: export class ProfileEditorComponent { profileForm = this.fb.group({ firstName: [''], lastName: [''], addr

我有一个表单数组
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

在编辑问题之前回答

更新

如下所述称为模块扩充,或

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

原创

我们需要一个警告验证器,这不是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

您能提供一个示例吗?如何将此应用于现有表单?您不会将其直接应用于您的表单。应用程序中的每个
FormControl
都会自动具有此新定义的属性
elementType