2

我正在尝试将角度材料 mat-select 与反应形式一起使用,并收到错误消息“没有名称的表单控件的值访问器:'productUnitofMeasure'”。

其他 FormControls 在这里工作正常,我在 app 模块中包含了所有必需的模块。

应用程序模块:

import {MatFormFieldModule, MatOptionModule, MatSelectModule, MatInputModule} from '@angular/material';

imports:[
MatFormFieldModule,
MatOptionModule,
MatSelectModule,
MatInputModule,
ReactiveFormsModule]

模板:

<mat-form-field>
<mat-select placeholder="Unit Type">
    <mat-option *ngFor="let unitType of unitList" matInput formControlName="productUnitofMeasure" [value]="unitType.unitId">{{unitType.unitDescription}}</mat-option>
</mat-select>

零件:

this.productForm = new FormGroup({
  productName: new FormControl,
  productDescription: new FormControl,
  productPrice: new FormControl,
  productAvailableQuantity: new FormControl,
  productUnitofMeasure: new FormControl //this is the only control giving me an error.


});
4

2 回答 2

5

你应该使用formControlNamein mat-selectnot inmat-option

<mat-form-field>
<mat-select placeholder="Unit Type" formControlName="productUnitofMeasure" >
    <mat-option *ngFor="let unitType of unitList" matInput [value]="unitType.unitId">{{unitType.unitDescription}}</mat-option>
</mat-select>
于 2018-10-28T20:15:30.517 回答
0

我最近遇到了同样的问题。3rd 方组件和响应式表单存在问题。我找到了一个非常简单的解决方案。到目前为止,这是我认为最有意义的。

看着你的错误,我相信这是同一件事......

这是一个带有工作示例的 StackBlitz,但基本上您将要实现 ControlValueAccessor。

https://stackblitz.com/edit/mat-select-with-controlvalueaccessor

此外,如另一个答案中所述:

您应该在 mat-select 中使用 formControlName 而不是在 mat-option 中

于 2018-10-28T21:18:05.477 回答