J'essaie d'utiliser un composant que j'ai créé dans le AppModule dans d'autres modules. J'obtiens cependant l'erreur suivante :
"Uncaught (in promise) : Error : Erreurs d'analyse du modèle :
'contacts-box' n'est pas un élément connu :
- Si "contacts-box" est un composant Angular, vérifiez qu'il fait partie de ce module.
- Si 'contacts-box' est un composant Web, ajoutez 'CUSTOM_ELEMENTS_SCHEMA' à '@NgModule.schemas' de ce composant pour supprimer ce message.
La structure de mon projet est assez simple :
Je conserve mes pages dans le répertoire pages, où chaque page est conservée dans un module différent (par exemple le module customers) et chaque module a plusieurs composants (comme le composant customers-list, le composant customers-add et ainsi de suite). Je veux utiliser mon ContactBoxComponent à l'intérieur de ces composants (donc à l'intérieur de customers-add-component par exemple).
Comme vous pouvez le voir, j'ai créé le composant ContactBox dans le répertoire des widgets, il se trouve donc dans le AppModule. J'ai ajouté l'import ContactBoxComponent à app.module.ts et je l'ai mis dans la liste des déclarations de AppModule. Cela n'a pas fonctionné, alors j'ai cherché mon problème sur Google et j'ai ajouté ContactBoxComponent à la liste des exportations. Cela n'a pas aidé. J'ai aussi essayé de mettre ContactBoxComponent dans CustomersAddComponent et ensuite dans un autre (d'un module différent) mais j'ai eu une erreur disant qu'il y a plusieurs déclarations.
Qu'est-ce que je rate ?
2 votes
La structure de vos dossiers n'est pas simple. Elle est confuse. Je vous suggère de suivre le guide de style d'Angular (lien non fourni car ils changent) et d'utiliser leurs suggestions de structure de dossiers, puis de vous assurer que vous utilisez correctement les modules. C'est ce que cela signifie. Vous n'exportez pas ou ne déclarez pas votre composant dans un module ingéré par l'application à un moment donné.
6 votes
Quelle réponse utile à la question posée...
1 votes
J'ai eu ce problème et je l'ai résolu en incluant un composant là où il n'était pas inclus mais où il y avait un composant qui l'incluait. Ce que je veux dire... J'ai lu TOUTES les réponses ci-dessous et j'ai essayé beaucoup de choses avant de trouver ma solution... toutes les contributions sont bonnes et je vous recommande d'en lire plus d'une. HTH
0 votes
Si aucune des réponses ne fonctionne, supprimez et recréez le composant "contacts-box".