J'utilise angular 5 et j'obtiens l'erreur de la console:
Ne peut pas se lier à 'ngValue' car ce n'est pas une propriété connue de 'Mat-option'
Mon modèle ressemble à ceci:
<mat-select placeholder="Select Book" name="patient" [(ngModel)]="selectedBook">
<mat-option *ngFor="let eachBook of books" [ngValue]="eachBook">{{eachBook.name}}</mat-option>
</mat-select>
J'ai importé MatSelectModule
et MatOptionModule
.
Comment pouvons-nous résoudre ce problème?
Vous devriez utiliser la valeur
[value]="eachBook"
La réponse acceptée n'est pas une solution, mais une solution de contournement, car value
et [ngValue]
remplissent des objectifs différents. value
peut être utilisé pour des valeurs de chaîne simples, alors que [ngValue]
est nécessaire pour prendre en charge des valeurs autres que des chaînes.
Selon la documentation:
Si vous avez importé le FormsModule ou le ReactiveFormsModule, cet accesseur de valeur Sera actif sur tout contrôle de sélection ayant une directive form . Vous n'avez pas besoin d'ajouter un sélecteur spécial pour l'activer.
Si vous obtenez cette erreur, vous devez probablement importer FormsModule
ou ReactiveFormsModule
dans votre application.
Par exemple, dans app.module.ts
:
import { FormsModule } from '@angular/forms';
// ...
imports: [
FormsModule,
...
]
J'ai rencontré le même problème. La solution pour moi est d’importer 'ReactiveFormsModule'. Vous pouvez donc utiliser [ngValue]
pour lier un objet.