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.

Relaterte artikler