Jestem nowy w Angular2. Próbowałem utworzyć komponent, ale pokazał błąd.
To jest app.component.ts
plik.
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' }
To jest komponent, który chcę stworzyć.
import { Component } from '@angular/core';
@Component({
selector: 'my-component',
template: `
<p>This is my article</p>
`
})
export class MyComponentComponent {
}
Pokazywanie dwóch błędów:
- Jeśli
my-component
jest to komponent kątowy, sprawdź, czy jest częścią tego modułu. - Jeśli
my-component
jest składnikiem sieci Web, dodajCUSTOM_ELEMENTS_SCHEMA
do@NgModule.schemas
tego składnika, aby pominąć ten komunikat.
Proszę pomóż.
angular
typescript
Vimal
źródło
źródło
Może to jest nazwa
html
komponentu taguUżywasz w
html
czymś takim<mycomponent></mycomponent>
Musisz tego użyć
<app-mycomponent></app-mycomponent>
źródło
html
tagu określaselector
właściwość. W tym przypadku jestmy-component
.czy importujesz to w swoim
app.module.ts
podobnym i usuwasz dyrektywy bitowe: -Twój
MyComponentModule
powinien wyglądać tak: -źródło
exports
Sprawdź swój selektor w pliku nazwa_pliku.component.ts
Powiedziałbym, że używając tagu w różnych plikach html
Powinien być
Przykład
źródło
W moim przypadku pisałem testy jednostkowe dla komponentu, który używa podkomponentów, i pisałem testy, aby upewnić się, że te podkomponenty są w szablonie:
Nie wyskoczył mi błąd, ale ostrzeżenie:
Ponadto podskładnik nie pojawił się w przeglądarce podczas testowania.
Kiedyś
ng g c newcomponent
generowałem wszystkie komponenty, więc były już zadeklarowane w module appmodule, ale nie w module testowym, który dla komponentu, który specyfikowałem.źródło
Musisz zadeklarować swój MyComponentComponent w tym samym module swojego AppComponent.
źródło
MyComponentComponent
inMyComponentModule
MyComponentComponent
doexports
atrybutuMyComponentModule
mycomponentModule.ts
MyComponentModule
do swojego AppModuleimports
app.module.ts
Ważne Jeśli nadal występuje ten błąd, zatrzymaj serwer
ctrl+c
z poziomu terminala i uruchom go ponownieng serve -o
źródło
W moim przypadku miałem komponent w module Shared.
Komponent ładował się i działał dobrze, ale maszynopis podświetlał tag HTML czerwoną linią i pokazywał ten komunikat o błędzie.
Wewnątrz tego komponentu zauważyłem, że nie zaimportowałem operatora rxjs.
Kiedy dodałem ten import, komunikat o błędzie zniknął.
Sprawdź wszystkie importy wewnątrz komponentu .
Mam nadzieję, że to komuś pomoże.
źródło
Sprawdź, w którym module jest deklarowany komponent nadrzędny ...
Jeśli komponent nadrzędny jest zdefiniowany w module współdzielonym, musi to być również moduł podrzędny.
Komponent nadrzędny może być zadeklarowany w module współdzielonym, a nie moduł, który jest logiczny w oparciu o strukturę / nazewnictwo plików, nawet interfejs wiersza poleceń Angular dodał go do niewłaściwego modułu w moim przypadku.
źródło
Mam nadzieję, że masz
app.module.ts
. W Twoimapp.module.ts
dodatku poniżej linii-Lubię to:
źródło
W pliku components.module.ts zaimportuj IonicModule w następujący sposób:
import { IonicModule } from '@ionic/angular';
Następnie zaimportuj IonicModule w następujący sposób:
więc twoje komponenty components.module.ts będą wyglądały tak:
źródło
Nie
export **default** class MyComponentComponent
!Powiązana kwestia, która może znaleźć się pod tytułem, jeśli nie konkretne pytanie:
Przypadkowo zrobiłem ...
... i to też schrzaniło sprawę.
Czemu? VS Code dodał import do mojego modułu, gdy umieściłem go w
declarations
, ale zamiast ...miał
I to nie było mapowane w górę w dół, przypuszczalnie ponieważ nie było nigdzie nazwane „naprawdę” z domyślnym importem.
Nie
default
. Zysk.źródło