Javascript 带mat select can'的角度动态表格;无法获取值访问器

Javascript 带mat select can'的角度动态表格;无法获取值访问器,javascript,angular,typescript,angular-material,angular-reactive-forms,Javascript,Angular,Typescript,Angular Material,Angular Reactive Forms,我正在尝试将mat select与表单数组一起使用。出于某种原因,它给了我以下错误: 对于数组中的每个项,没有路径为“profileGroup->meterings->0->selected”的窗体控件的值访问器 {{metering.value.name} 你融入了不同的概念。材质选择多个它是存储数组(以及对象数组或字符串数组)的控件。然后迭代一个简单的元素数组,在这些元素中进行选择。没有意义使用FormArray,也没有意义向数组中添加元素。所以我想你有一些 meterings=[

我正在尝试将mat select与表单数组一起使用。出于某种原因,它给了我以下错误: 对于数组中的每个项,没有路径为“profileGroup->meterings->0->selected”的窗体控件的值访问器


{{metering.value.name}

你融入了不同的概念。材质选择多个它是存储数组(以及对象数组或字符串数组)的控件。然后迭代一个简单的元素数组,在这些元素中进行选择。没有意义使用FormArray,也没有意义向数组中添加元素。所以我想你有一些

meterings=[
  {name:"metering 1",id:1}
  {name:"metering 2",id:2}
  {name:"metering 3",id:2}
]
this.mainForm = this.fb.group({
   profileGroup: this.fb.group({
     meterings: [[]],
     from: [""],
     to: [""]
   })
});
html文件

<div formGroupName="profileGroup" [class.active]="!show" class="inner-area">
   <mat-form-field >
     <mat-select fromGroupName="meterings">
         <mat-option *ngFor="let metering of meterings; let i = index"
                  [value]="metering.value">
            {{ metering.value.name }}
         </mat-option>
      </mat-select>
    </mat-form-field>
<div>
<div formGroupName="profileGroup" [class.active]="!show" class="inner-area">
   <mat-form-field formArrayName="meterings">
       <div *ngFor="let metering of meteringArray; let i = index" [formGroupName]="i">
         <mat-checkbox formControlName="selected">
         </mat-checkbox>
         <input mat-input formControlName="name">
         <input mat-input formControlName="id">
      </div>
   </mat-form-field>
</div>
另一件事是,正如您在问题中提出的那样,您希望有一个FormControls的正式数组。但是,您不使用“选择多个”

 this.mainForm = this.fb.group({
   profileGroup: this.fb.group({
      meterings: this.fb.array([]),
      from: [""],
      to: [""]
   })
 });
html文件

<div formGroupName="profileGroup" [class.active]="!show" class="inner-area">
   <mat-form-field >
     <mat-select fromGroupName="meterings">
         <mat-option *ngFor="let metering of meterings; let i = index"
                  [value]="metering.value">
            {{ metering.value.name }}
         </mat-option>
      </mat-select>
    </mat-form-field>
<div>
<div formGroupName="profileGroup" [class.active]="!show" class="inner-area">
   <mat-form-field formArrayName="meterings">
       <div *ngFor="let metering of meteringArray; let i = index" [formGroupName]="i">
         <mat-checkbox formControlName="selected">
         </mat-checkbox>
         <input mat-input formControlName="name">
         <input mat-input formControlName="id">
      </div>
   </mat-form-field>
</div>