Winkel-2 mehrere Module
Habe ich eine app, die mehrere Ansichten wie man Tabelle & anderen ist die zwei-panel-Ansicht, für beide Ansichten-navigation, suchen & Filter Häufig auf. Also habe ich ein gemeinsames Modul und importiert das Modul an das Hauptmodul & jetzt versucht die common-Module-Komponenten in-spreadsheet-Komponente. Naja unten ist mein code, geben das richtige Bild:
//Spreadsheet module - spreadsheet.module.ts
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { Spreadsheet } from './components/spreadsheet.component';
@NgModule({
imports: [ BrowserModule ],
declarations: [ Spreadsheet ],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})
export class SpreadsheetModule { }
//Common module - common.module.ts
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { TopNavigation } from './components/header.component';
import { Search } from './components/search.component';
import { AccountInfo } from './services/accountInfo';
@NgModule({
imports: [ BrowserModule ],
declarations: [ TopNavigation, Search ],
providers: [ AccountInfo ],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})
export class CommonModule {}
Nun bin ich importieren dieses Modul um ein Hauptmodul, das ist:
//App module - app.module.ts
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { CommonModule } from './common/common.module';
import { SpreadsheetModule } from './spreadsheet/spreadsheet.module';
@NgModule({
imports: [ BrowserModule, CommonModule, SpreadsheetModule ],
declarations: [ AppComponent ],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
So, in meiner Tabelle ist die Komponente, die ich versuche zu verwenden Kopfzeile (TopNavigation
) Vorlage wie <top-nav></top-nav>
so sollte dies zeigen header.html Inhalt, sondern sein kommen als leer. Es geben nicht alle Fehler als gut. Nicht sicher, was ich falsch mache.
Hinweis: Wenn ich direkt erklären TopNavigation
im spreadsheet.module.ts
es funktioniert gut. Aber da die navigation und Suche gemeinsam sind, will ich nicht erklären, es in jedem einzelnen Module, dass sollte nur in app.module.ts
Ich möchte
header.component
Vorlage spreadsheet.component
so etwas wie dieses <spreadsheet><top-nav></top-nav></spreadsheet>
also in obigem Fall <top-nav></top-nav>
kommt leer. Aber wenn ich erklären header.Komponente direkt in eine Tabellenkalkulation.Modul wie declarations: [ Spreadsheet, TopNavigation ],
es funktioniertInformationsquelleAutor Dheeraj Agrawal | 2017-01-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwei Dinge müssen hier gemacht werden:
Erste, export
TopNavigation
&Search
Komponenten aus dem CommonModule, so dass Sie verwendet werden kann, die in anderen Modulen:Zweitens, die
CommonModule
importiert werden soll, indem Sie das Modul, das tatsächlich verwendet. In Ihrem Fall ist dieSpreadSheet
Modul importierenCommonModule
Module nicht Erben Komponenten deklariert sind, die in anderen Modulen. Also, wenn Sie Sie importieren
CommonModule
imAppModule
es hat keine Wirkung.Lesen Sie hier für mehr info.
siehe mein edit.
jetzt bin ich immer dieser Fehler:
Error: Error in ./Spreadsheet class Spreadsheet - inline template:0:0 caused by: No provider for AccountInfo!.
Eigentlich habe ich eine Dienstleistung, die ich haben Hinzugefügtcommon.module
überprüfen habe ich aktualisiert und verbreitet.Modul in meiner FrageSeine gelöst, ich rief AccountInfo an paar Orten und aus verschiedenen Pfaden, so dass Ihr nun behoben, vielen Dank
Sie sollten mit exports in Ihrer CommonModule statt schemas
InformationsquelleAutor Obaid