Javascript 带mat select can'的角度动态表格;无法获取值访问器
我正在尝试将mat select与表单数组一起使用。出于某种原因,它给了我以下错误: 对于数组中的每个项,没有路径为“profileGroup->meterings->0->selected”的窗体控件的值访问器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=[
{{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>