Ionic 3,管道共享模块,延迟加载页面

时间:2017-04-15 14:41:26

标签: angular typescript ionic3

使用IonicPageIonicPageModule可以延迟加载离子3页面。问题是这些延迟加载的页面无法访问管道。

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

This question描述了该问题并提供了解决方案。我对提议的解决方案唯一关心的是它需要在所有延迟加载的页面中导入共享模块pipes.module

哪种类型还原了angulr2中引入的一个很好的功能,即在app.module.ts中只导入一次管道。

我认为通过导入pipes.module中的共享模块app.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 {}

2 个答案:

答案 0 :(得分:4)

我就像你试图找到正确的方法来处理这个问题,经过一些研究我会说这是我们应该处理的方式,因为以下内容。

从角度faqs

  

使用组件,指令和管道创建一个SharedModule   你在应用程序的任何地方使用。该模块应完全由   声明,大部分是导出的。

     

导入功能模块中的SharedModule,这两个模块都已加载   当应用程序启动时,以及您稍后加载的那些

我也发现了这个离子3 doc,它提供了一些如何处理组件,管道和服务的建议。

答案 1 :(得分:3)

建议在单个页面模块中导入管道模块的新方法更好,因为在app / pwa启动时你不必加载管道,使用延迟加载使app加载更快。

有关详细信息,请查看this文章。