我们如何在ionic3中的不同延迟加载页面中导入Pipe文件?

时间:2017-09-23 14:30:57

标签: angular typescript lazy-loading ionic3

此问题与How can we use Provider in Pipe files while using Deep Linking and Lazy Loading Ionic 3?非常相似,但在此问题中,我们不使用提供商。

我有2个Lazy Loading Pages Page1和Page2以及HomePage作为根页面。另外,MyPipe文件是Pipe文件。如下所示。我想在LAzy Loading Files Page1和Page2以及HomePage

中使用此Pipe文件

案例1 :如果我只在Pipe上添加app.module个文件

然后发生以下错误

  
    

运行时错误     未捕获(承诺):错误:模板解析错误:管道' myPipe'无法找到(" {{[ERROR - >]' test1' | myPipe}}"):ng:/// Page1PageModule/Page1Page.html@16:2错误:模板解析错误:管道' myPipe'无法找到(" {{[ERROR - >]' test1' | myPipe}}"):

  

Case 2:如果我将Pipe文件导入Page1ModulePage2Module

然后发生以下错误

  

运行时错误   未捕获(承诺):错误:类型MyPipe是2个模块的声明的一部分:Page1PageModule和Page2PageModule!请考虑将MyPipe移动到导入Page1PageModule和Page2PageModule的更高模块。您还可以创建一个新的NgModule,它导出并包含MyPipe,然后在Page1PageModule和Page2PageModule中导入该NgModule。错误:类型MyPipe是2个模块的声明的一部分:Page1PageModule和Page2PageModule!请考虑将MyPipe移动到导入Page1PageModule和Page2PageModule的更高模块。您还可以创建一个新的NgModule,它导出并包含MyPipe,然后在Page1PageModule和Page2PageModule中导入NgModule。

感谢您的推荐。

1 个答案:

答案 0 :(得分:3)

很简单。这是我的工作流程。

  1. 我使用此pipe创建CLIionic generate pipe MyFilter

  2. 然后它会自动创建pipes.module.ts

  3. 之后,我只是import进入我的延迟加载页面module,如下所示。

  4. member.module.ts

    import { NgModule } from '@angular/core';
    import { IonicPageModule } from 'ionic-angular';
    import { MemberPage } from './member';
    import { PipesModule } from '../../pipes/pipes.module';
    
    @NgModule({
      declarations: [
        MemberPage,
      ],
      imports: [
        IonicPageModule.forChild(MemberPage),
        PipesModule <-- here
      ],
    })
    export class MemberPageModule { }
    
    1. 就是这样。没有错误,pipe也正常工作:)