Eu sou novo no Angular2. Eu tentei criar um componente, mas mostrando um erro.
Este é o app.component.ts
arquivo
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' }
Este é o componente que eu quero criar.
import { Component } from '@angular/core';
@Component({
selector: 'my-component',
template: `
<p>This is my article</p>
`
})
export class MyComponentComponent {
}
Mostrando os dois erros:
- Se
my-component
for um componente Angular, verifique se ele faz parte deste módulo. - Se
my-component
for um componente da Web, adicioneCUSTOM_ELEMENTS_SCHEMA
ao@NgModule.schemas
deste componente para suprimir esta mensagem.
Por favor ajude.
angular
typescript
Vimal
fonte
fonte
Talvez seja para o nome do
html
componente da tagVocê usa em
html
algo assim<mycomponent></mycomponent>
Você deve usar isso
<app-mycomponent></app-mycomponent>
fonte
html
marca determina aselector
propriedade. Neste caso émy-component
.você está importando da mesma
app.module.ts
maneira e remova o bit de diretivas: -Você
MyComponentModule
deve ser assim: -fonte
exports
Verifique seu seletor em seu filename.component.ts
Usando a tag em vários arquivos html, eu diria
Deveria estar
Exemplo
fonte
No meu caso, eu escrevia testes de unidade para um componente que usa subcomponentes e escrevia testes para garantir que esses subcomponentes estivessem no modelo:
Não recebi um erro, mas um aviso:
Além disso, o subcomponente não apareceu dentro do navegador durante o teste.
Eu costumava
ng g c newcomponent
gerar todos os componentes, então eles já foram declarados no módulo de aplicativo, mas não no módulo de teste que estava especificando para o componente.fonte
Você deve declarar seu MyComponentComponent no mesmo módulo do seu AppComponent.
fonte
MyComponentComponent
emMyComponentModule
MyComponentComponent
aoexports
atributo deMyComponentModule
mycomponentModule.ts
MyComponentModule
ao seuimports
atributo AppModuleapp.module.ts
Importante Se você ainda tiver esse erro, pare o servidor
ctrl+c
do terminal e execute-o novamenteng serve -o
fonte
No meu caso, eu tinha um componente em um módulo compartilhado.
O componente estava carregando e funcionou bem, mas o texto datilografado destacava a tag html com linha vermelha e mostrava essa mensagem de erro.
Dentro deste componente, notei que não importava um operador rxjs.
Quando adicionei essa importação, a mensagem de erro desapareceu.
Verifique todas as importações dentro do componente .
Espero que ajude alguém.
fonte
Verifique em qual módulo o componente pai está sendo declarado em ...
Se o seu componente pai estiver definido no módulo compartilhado, seu módulo filho também deve.
O componente pai pode ser declarado em um módulo compartilhado e não no módulo que é lógico com base na estrutura / nomeação do diretório de arquivos, mesmo a CLI Angular o adicionou ao módulo errado no meu caso.
fonte
Espero que você esteja tendo
app.module.ts
. No seuapp.module.ts
add abaixo da linhaComo isso:
fonte
No seu components.module.ts, você deve importar o IonicModule assim:
import { IonicModule } from '@ionic/angular';
Importe o IonicModule assim:
para que seu components.module.ts fique assim:
fonte
Não
export **default** class MyComponentComponent
!Problema relacionado que pode se enquadrar no título, se não a pergunta específica:
Eu acidentalmente fiz um ...
... e isso estragou tudo também.
Por quê? O VS Code adicionou a importação ao meu módulo quando eu o coloquei
declarations
, mas em vez de ...teve
E isso não foi mapeado rio abaixo, supostamente porque não foi "realmente" nomeado em nenhum lugar com a importação padrão.
Não
default
. Lucro.fonte