Angular - 无法绑定到'ngValue',因为它不是'mat-option'的已知属性

Man*_*tha 10 angular angular5

我正在使用角度5,我收到控制台错误:

无法绑定到'ngValue',因为它不是'mat-option'的已知属性

我的模板看起来如下所示:

  <mat-select placeholder="Select Book" name="patient" [(ngModel)]="selectedBook">
     <mat-option *ngFor="let eachBook of books" [ngValue]="eachBook">{{eachBook.name}}</mat-option>
  </mat-select>
Run Code Online (Sandbox Code Playgroud)

我已经导入了两个MatSelectModuleMatOptionModule.

我们怎么解决这个问题?

Mar*_*ark 12

接受的答案是不是一个解决方案,但一个变通办法,如value[ngValue]用于不同的目的。value可以用于简单的字符串值,而[ngValue]对于支持非字符串值则是必需的。

根据文档:

如果已导入FormsModule或ReactiveFormsModule,则此值访问器将在具有form指令的任何选择控件上处于活动状态。您无需添加特殊的选择器即可激活它。

如果遇到此错误,则很可能需要将FormsModuleReactiveFormsModule导入到您的应用程序中。

例如,在app.module.ts

import { FormsModule } from '@angular/forms';

// ...

imports: [
    FormsModule,
    ...
]
Run Code Online (Sandbox Code Playgroud)


Saj*_*ran 7

你应该使用价值

[value]="eachBook"
Run Code Online (Sandbox Code Playgroud)

  • 我想使用`ngValue`而不是`value`,这是angular docs推荐的.我该如何使用`ngValue`? (12认同)
  • 如果该值不是字符串,则需要使用[ngValue]。有什么办法可以和[ngValue]一起使用材质选择框? (3认同)