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?
Sie sollten Wert verwenden
[value]="eachBook"
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,
...
]
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.