Je suis nouveau dans Angular2. J'ai essayé de créer un composant mais en affichant une erreur.
Ceci est le app.component.ts
fichier.
import { Component } from '@angular/core';
import { MyComponentComponent } from './my-component.component';
@Component({
selector: 'my-app',
template: `
<h1>Hello {{name}}</h1>
<h4>Something</h4>
<my-component></my-component>
`,
directives: [MyComponentComponent]
})
export class AppComponent { name = 'Sam' }
C'est le composant que je souhaite créer.
import { Component } from '@angular/core';
@Component({
selector: 'my-component',
template: `
<p>This is my article</p>
`
})
export class MyComponentComponent {
}
Affichage des deux erreurs:
- Si
my-component
s'agit d'un composant angulaire, vérifiez qu'il fait partie de ce module. - Si
my-component
est un composant Web, ajoutez-leCUSTOM_ELEMENTS_SCHEMA
au@NgModule.schemas
de ce composant pour supprimer ce message.
Veuillez aider.
la source
Peut-être que c'est pour le nom du
html
composant de baliseVous utilisez dans
html
quelque chose comme ça<mycomponent></mycomponent>
Vous devez utiliser ceci
<app-mycomponent></app-mycomponent>
la source
html
balise détermine laselector
propriété. Dans ce cas estmy-component
.l'importez-vous
app.module.ts
comme tel et supprimez le bit de directives: -Tu
MyComponentModule
devrais être comme ça: -la source
exports
Vérifiez votre sélecteur dans votre nom de fichier.component.ts
En utilisant la balise dans divers fichiers html, je dirais
Devrait être
Exemple
la source
Dans mon cas, j'écrivais des tests unitaires pour un composant qui utilise des sous-composants, et j'écrivais des tests pour m'assurer que ces sous-composants étaient dans le modèle:
Je n'ai pas eu d'erreur, mais un avertissement:
De plus, le sous-composant ne s'affichait pas dans le navigateur pendant les tests.
J'avais l'habitude
ng g c newcomponent
de générer tous les composants, donc ils étaient déjà déclarés dans l'appmodule, mais pas le module de test que pour le composant que je spécifiais.la source
Vous devez déclarer votre MyComponentComponent dans le même module de votre AppComponent.
la source
MyComponentComponent
inMyComponentModule
MyComponentComponent
à l'exports
attribut deMyComponentModule
mycomponentModule.ts
MyComponentModule
à votreimports
attribut AppModuleapp.module.ts
Important Si cette erreur persiste, arrêtez votre serveur à
ctrl+c
partir du terminal et réexécutez-leng serve -o
la source
Dans mon cas, j'avais un composant dans un module partagé.
Le composant se chargeait et fonctionnait bien mais dactylographié mettait en évidence la balise html avec une ligne rouge et montrait ce message d'erreur.
Dans ce composant, j'ai remarqué que je n'avais pas importé d'opérateur rxjs.
Lorsque j'ai ajouté cette importation, le message d'erreur a disparu.
Vérifiez toutes les importations à l'intérieur du composant .
J'espère que ça aide quelqu'un.
la source
Vérifiez dans quel module le composant parent est déclaré ...
Si votre composant parent est défini dans le module partagé, votre module enfant doit l'être également.
Le composant parent pourrait être déclaré dans un module partagé et non dans le module logique basé sur la structure du répertoire de fichiers / la dénomination, même la CLI angulaire l'a ajouté dans le mauvais module dans mon cas.
la source
J'espère que vous avez
app.module.ts
. Dans votreapp.module.ts
ajouter ci-dessous la ligne-Comme ça:
la source
Dans votre components.module.ts, vous devez importer IonicModule comme ceci:
import { IonicModule } from '@ionic/angular';
Ensuite, importez IonicModule comme ceci:
donc votre components.module.ts sera comme ceci:
la source
Pas
export **default** class MyComponentComponent
!Problème connexe qui pourrait relever du titre, sinon de la question spécifique:
J'ai accidentellement fait un ...
... et cela a aussi gâché les choses.
Pourquoi? VS Code a ajouté l'importation à mon module lorsque je l'ai mis dans
declarations
, mais au lieu de ...cela a
Et cela n'a pas été mappé en aval, supposément car il n'était "vraiment" nommé nulle part avec l'importation par défaut.
Non
default
. Profit.la source