Angulaire 4 mat-forme-terrain à mat-sélectionnez
Donc, je vais avoir des problèmes à l'aide de mat-sélectionnez avec des tapis champ de formulaire . À l'aide de mat-champ de formulaire avec des tapis d'entrée n'est pas un problème, et je suis assez sûr de mon importations sont corrects, mais je reçois l'erreur suivante lors de l'utilisation de mat-sélectionnez:
Erreur: md-forme-champ doit contenir un MdFormFieldControl. Avez-vous oublié d'ajouter mdInput à la maternelle...
Mon code HTML est le suivant:
<mat-form-field class="full-width">
<mat-select name="sampleType" formControlName="sampleTypeCtrl"
placeholder="Sample Type" required>
<mat-option *ngFor="let sample of samples" [value]="sample.value">
{{ sample.viewValue }}
</mat-option>
</mat-select>
</mat-form-field>
Mon point de vue, le module qui contient ce composant et est importé dans mon application principale.le module.ts fichier est le suivant:
...
import { MatFormFieldModule, MatInputModule, MatSelectModule } from
'@angular/material';
...
@NgModule({
imports: [
...
MatInputModule,
MatFormFieldModule,
MatSelectModule,
...
],
})
export class ViewModule {}
Mon application principale.le module.ts fichier comprend à la fois la ViewModule et la NoConflictStyleCompatibilityMode importations et se présente comme suit:
...
import { ViewModule } from './view/view.module';
import { NoConflictStyleCompatibilityMode } from '@angular/material';
...
@NgModule({
...
imports: [
ViewModule,
NoConflictStyleCompatibilityMode
],
...
})
export class AppModule { }
Quand j'enlève le tapis champ de formulaire de partout dans le tapis-sélectionnez, l'erreur disparaît, mais j'ai des incohérences avec la façon dont des tapis d'entrée (à l'aide de mat-forme-champ) et mat-sélectionnez sont style. Je suis d'importer les deux la MatSelectModule et MatFormFieldModule, mais j'ai cette erreur. J'ai également mis à jour mon mnp angulaire matériel 2 de sorte qu'il est le dernier et le plus grand, mais toujours rien. Que suis-je en dominant? J'ai vu ce type de problème traité au cours des dernières stackoverflows, mais chaque solution, j'ai déjà essayé, mais sans succès.
mat-sélectionnez ne fonctionne Pas Correctement
mat-forme-champ doit contenir un MatFormFieldControl
MatInputModule, MatFormFieldModule, MatSelectModule
sont présents dans ViewModule mais ils ne sont pas une partie de AppModule. vous devez vous export le matériel des modules de ViewModule
OriginalL'auteur John Stafford | 2017-11-03
Vous devez vous connecter pour publier un commentaire.
J'ai été confronté problème similaire, et à partir de ce question sur github, j'ai réalisé que ngIf ne doit pas être sur le tapis-sélectionner.
Cela peut aider quelqu'un:
OriginalL'auteur skm
Essayez d'ajouter simplement
matInput
attribut à votre imbriquéemat-select
(message d'erreur indique):Cette construction fonctionne pour moi.
UPD.: Rapide plnkr exemple https://plnkr.co/edit/9Yz6xkcVMCMpRhP3Qse9
Aussi, pourquoi est-il toujours se plaindre de choses en utilisant les 'md' préfixe de trop? Je suis passé tout à l' 'mat' préfixe. Ceci est source de confusion.
Pouvez vous s'il vous plaît vérifiez si votre module importations MatInputModule, MatSelectModule et MatFormFieldModule? Pouvez-vous fournir plnkr exemple de votre code?
Il y a aussi une chose que vous avez besoin d'importer des matières thème afin d'utiliser des composants. github.com/angular/material2/issues/6948 Avez-vous l'utiliser?
oui, j'ai importé un thème déjà et ont importé MatInputModule, MatSelectModule et MatFormFieldModule dans mon module. Je vais essayer d'obtenir un plunker fait ce soir.
OriginalL'auteur grumbler_chester
viens de mettre à jour mon angulaire à la dernière version , qui était de 5 dans ce cas et il a résolu le problème
OriginalL'auteur John Stafford