wake-up-neo.com

Angular - Kann nicht an 'ngValue' binden, da es keine bekannte Eigenschaft von 'mat-option' ist

Ich verwende 5 und erhalte den Konsolenfehler:

Kann nicht an 'ngValue' binden, da es keine bekannte Eigenschaft von 'Mat-option' ist

Meine Vorlage sieht ungefähr so ​​aus:

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

Ich habe sowohl MatSelectModule als auch MatOptionModule importiert. 

Wie können wir das lösen?

3
Manoj Shrestha

Sie sollten Wert verwenden

[value]="eachBook"
6
Sajeetharan

Die akzeptierte Antwort ist keine Lösung, sondern eine Umgehung, da value und [ngValue] unterschiedliche Zwecke erfüllen. value kann für einfache Zeichenfolgenwerte verwendet werden, während [ngValue] für die Unterstützung von Nicht-Zeichenfolgenwerten erforderlich ist.

Per Dokumentation:

Wenn Sie FormsModule oder ReactiveFormsModule importiert haben, ist dieser Wertenzugriffscode für jedes Auswahlsteuerelement aktiv, das über eine Form - Direktive verfügt. Sie müssen keine spezielle Auswahl hinzufügen, um sie zu aktivieren.

Wenn Sie diese Fehlermeldung erhalten, müssen Sie höchstwahrscheinlich entweder FormsModule oder ReactiveFormsModule in Ihre App importieren.

Zum Beispiel in app.module.ts:

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

// ...

imports: [
    FormsModule,
    ...
]
4
Mark

Ich habe das gleiche Problem getroffen. Die Lösung für mich ist, 'ReactiveFormsModule' zu importieren. Sie können also [ngValue] verwenden, um ein Objekt zu binden.

0
Emon Zan