2017-04-15 65 views
9

使用IonicPageIonicPageModule可以延遲加載離子3頁。問題是這些懶惰的加載頁面無法訪問管道。Ionic 3,用於管道的共享模塊,用於延遲加載的頁面

Failed to navigate: Template parse errors: 
The pipe 'myPipe' could not be found ("") 

This question描述了問題並提供瞭解決方案。我對建議的解決方案的唯一擔憂是它需要在所有延遲加載的頁面中導入共享模塊pipes.module

哪種恢復angulr2中引入的一個很好的功能,即在app.module.ts中只導入一次管道。

我認爲應該有一個更好的方法,通過在app.module中導入共享模塊pipes.module,以便所有頁面都可以看到所有管道。

這裏是app.module.ts

@NgModule({ 
    declarations: [ 
    MyApp, 
    ], 
    imports: [ 
    BrowserModule, 
    HttpModule, 
    PipesModule, 
    IonicModule.forRoot(MyApp), 
    IonicStorageModule.forRoot() 
    ], 
    bootstrap: [IonicApp], 
    entryComponents: [ 
    MyApp, 

    ], 
    providers: [] 
    }) 
    export class AppModule { } 

我們不應該使用

PipesModule.forRoot(MyApp) 

爲了使PipesModule訪問所有延遲加載網頁?

這裏是pipes.moudle.ts文件:

@NgModule({ 
    declarations: [ 
     BreakLine, 
     Hashtag, 
     Translator 
    ], 
    imports: [ 

    ], 
    exports: [ 
     BreakLine, 
     Hashtag, 
     Translator 
    ] 
    , 
}) 
export class PipesModule {} 

回答

3

我只是喜歡你試圖找到處理這個問題的正確方法,一些研究後,我會說,是我們應該處理這一點,因爲方式下列。

從角faqs

創建的組件,指令和管道是 你在你的應用程序中使用到處SharedModule。該模塊應該完全由 聲明組成,其中大部分都是導出的。

導入SharedModule在您的功能模塊,這兩個裝載 當應用程序啓動和你延遲加載後

而且我發現這個離子3 doc,它提供瞭如何處理組件的一些建議,管道和服務。

+1

我看過那個離子文檔。關鍵是我的共享模塊無處不在。這就是爲什麼它應該在'app.module.ts'中導入一次才能在所有其他組件中可見的原因。 –

1

建議在個別頁面模塊中導入管道模塊的新方法更好,因爲當app/pwa啓動時不需要加載管道,使用延遲加載可以加快應用加載速度。

查看this文章瞭解更多詳情。

+0

我希望通過此鏈接進行搜索。我明白這是事實。我認爲應該有更好的方法來減少對各地進口的編碼。 –