Erreur “Template parse errors: ‘my-comp’ is not a known element”

Vous avez créé un composant, mais vous n’arrivez pas à l’afficher dans un template via son sélecteur. C’est comme si Angular ne le reconnaissait pas. Pourquoi ?

Tout composant doit être listé dans la propriété declarations d’un NgModule pour pouvoir être affiché dans ce NgModule.

@NgModule({
  imports: [CommonModule, ...],
  declarations: [MeteoComponent, ...]  // <!-- Le composant est déclaré dans le module
})
export class MyModule {}

Dans l’exemple, MeteoComponent peut être affiché via son sélecteur (<meteo></meteo>) dans n’importe quel autre composant du module MyModule. Notez bien ce point : par défaut, un composant ne peut être affiché que dans les autres composants du module où il est déclaré.

Si vous rencontrez l’erreur “‘my-comp’ is not a known element” (dans votre cas, my-comp sera le sélecteur de VOTRE composant), c’est probablement pour l’une des deux raisons suivantes :

  • Soit vous avez oublié de lister le composant dans les declarations du module où vous essayez de l’afficher (si vous créez le composant avec le CLI, il doit l’ajouter automatiquement aux declarations).
  • Soit vous avez mis le composant dans les declarations d’un autre module que celui où vous essayez de l’afficher. Il faut dans ce cas utiliser une syntaxe spéciale pour que votre composant soit visible par les 2 modules, celui où vous l’avez déclaré et celui où vous voulez l’afficher. Voir la recette #10 Afficher le même composant dans plusieurs modules.
Informations

Tags : error

Dernière mise à jour :

Auteur : AngularChef

Qualité : Bonne