Ich bin neu in Angular2. Ich habe versucht, eine Komponente zu erstellen, aber einen Fehler angezeigt.
Dies ist die app.component.ts
Datei.
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' }
Dies ist die Komponente, die ich erstellen möchte.
import { Component } from '@angular/core';
@Component({
selector: 'my-component',
template: `
<p>This is my article</p>
`
})
export class MyComponentComponent {
}
Anzeigen der beiden Fehler:
- Wenn
my-component
es sich um eine Winkelkomponente handelt, überprüfen Sie, ob sie Teil dieses Moduls ist. - Wenn
my-component
es sich um eine Webkomponente handelt, fügen Sie dieseCUSTOM_ELEMENTS_SCHEMA
zu@NgModule.schemas
dieser Komponente hinzu, um diese Nachricht zu unterdrücken.
Bitte helfen Sie.
angular
typescript
Vimal
quelle
quelle
Möglicherweise ist dies der Name der
html
Tag-KomponenteSie verwenden in so
html
etwas<mycomponent></mycomponent>
Sie müssen dies verwenden
<app-mycomponent></app-mycomponent>
quelle
html
Tags bestimmen dieselector
Eigenschaft. In diesem Fall istmy-component
.Importieren Sie es
app.module.ts
so und entfernen Sie das Direktiven-Bit: -Ihr
MyComponentModule
sollte so sein: -quelle
exports
Überprüfen Sie Ihren Selektor in Ihrem Dateinamen.component.ts
Mit dem Tag in verschiedenen HTML-Dateien würde ich sagen
Sollte sein
Beispiel
quelle
In meinem Fall habe ich Komponententests für eine Komponente geschrieben, die Unterkomponenten verwendet, und ich habe Tests geschrieben, um sicherzustellen, dass diese Unterkomponenten in der Vorlage enthalten sind:
Ich habe keinen Fehler bekommen, aber eine Warnung:
Außerdem wurde die Unterkomponente während des Tests nicht im Browser angezeigt.
Früher habe ich
ng g c newcomponent
alle Komponenten generiert, daher wurden sie bereits im App- Modul deklariert, nicht jedoch das Testmodul, das für die von mir angegebene Komponente angegeben wurde.quelle
Sie müssen Ihre MyComponentComponent im selben Modul Ihrer AppComponent deklarieren.
quelle
MyComponentComponent
inMyComponentModule
MyComponentComponent
zuexports
AttributMyComponentModule
mycomponentModule.ts
MyComponentModule
zu Ihrem AppModule-imports
Attribut hinzuapp.module.ts
Wichtig Wenn dieser Fehler weiterhin auftritt, stoppen Sie den Server
ctrl+c
vom Terminal und führen Sie ihn erneut ausng serve -o
quelle
In meinem Fall hatte ich eine Komponente in einem Shared-Modul.
Die Komponente wurde geladen und funktionierte gut, aber Typoskript hob das HTML-Tag mit roter Linie hervor und zeigte diese Fehlermeldung an.
In dieser Komponente ist mir aufgefallen, dass ich keinen rxjs-Operator importiert habe.
Als ich diesen Import hinzufügte, verschwand die Fehlermeldung.
Überprüfen Sie alle Importe innerhalb der Komponente .
Hoffe es hilft jemandem.
quelle
Überprüfen Sie, in welchem Modul die übergeordnete Komponente deklariert wird ...
Wenn Ihre übergeordnete Komponente im freigegebenen Modul definiert ist, muss dies auch Ihr untergeordnetes Modul sein.
Die übergeordnete Komponente könnte in einem gemeinsam genutzten Modul deklariert werden und nicht in dem Modul, das basierend auf der Dateiverzeichnisstruktur / -benennung logisch ist. In meinem Fall hat sogar die Angular-CLI sie dem falschen Modul hinzugefügt.
quelle
Hoffe du hast
app.module.ts
. In Ihrerapp.module.ts
unten stehenden Zeile hinzufügen-So was:
quelle
In Ihren components.module.ts sollten Sie IonicModule wie folgt importieren:
import { IonicModule } from '@ionic/angular';
Importieren Sie dann IonicModule wie folgt:
Ihre Komponenten.module.ts werden also so aussehen:
quelle
Nicht
export **default** class MyComponentComponent
!Verwandte Ausgabe, die unter den Titel fallen könnte, wenn nicht die spezifische Frage:
Ich habe versehentlich eine ...
... und das hat auch alles vermasselt.
Warum? VS Code hat den Import zu meinem Modul hinzugefügt, als ich ihn eingefügt habe
declarations
, aber anstatt ...es hatte
Und das wurde nicht stromabwärts zugeordnet, vermutlich weil es mit dem Standardimport nirgendwo "wirklich" benannt wurde.
Nein
default
. Profitieren.quelle