angular - Ionic 3, delt modul for pipes, for late lastede sider
Med Ionic 3 kan sider lastes lazy ved bruk av IonicPage og IonicPageModule. Problemet er at disse lazy-lastede sidene ikke har tilgang til pipe.
Failed to navigate: Template parse errors:
The pipe 'myPipe' could not be found ("")
Dette spørsmålet beskriver problemet og gir en løsning. Min eneste bekymring med den foreslåtte løsningen er at det krever å importere det delte modulen pipes.module i alle sides som lastes inn med lazy loading.
Hva slags tilbakesteg en fin funksjon introdusert i Angular2 som er å importere pipen bare én gang i app.module.ts.
Jeg tror det burde finnes en bedre måte ved å importere den delte modulen pipes.module i app.module slik at alle pipes blir synlige for alle sider.
Her er app.module.ts
@NgModule({
declarations: [
MyApp,
],
imports: [
BrowserModule,
HttpModule,
PipesModule,
IonicModule.forRoot(MyApp),
IonicStorageModule.forRoot()
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
],
providers: []
})
export class AppModule { }
Bør vi ikke bruke
PipesModule.forRoot(MyApp)
For å gjøre PipesModule tilgjengelig for alle sider med lazy loading?
Her er pipes.moudle.ts-filen:
@NgModule({
declarations: [
BreakLine,
Hashtag,
Translator
],
imports: [
],
exports: [
BreakLine,
Hashtag,
Translator
]
,
})
export class PipesModule {}
Svar #1
Jeg var akkurat som deg og prøvde å finne den riktige måten å håndtere dette på, etter litt research vil jeg si at dette er måten vi skal håndtere dette på på grunn av følgende.
Fra Angular FAQ:
Lag en SharedModule med komponentene, direktivene og pipene som du bruker overalt i appen din. Denne modulen bør bestå helt av deklarasjoner, de fleste av dem eksportert.
Importer SharedModule i funksjonsmodulene dine, både de som lastes når appen starter og de du laster senere med lazy loading
Jeg fant også denne Ionic 3-dokumentasjonen, som gir noen forslag til hvordan man kan håndtere komponenter, pipes og tjenester.
Svar #2
Den nye tilnærmingen som foreslår å importere pipes-modulen i individuelle sidemoduler er bedre, fordi du ikke trenger å laste pipes når appen/pwa starter, noe som gjør at appen laster raskere ved å bruke lazy loading.
Ta en titt på denne artikkelen for mer informasjon.