web-dev-qa-db-ja.com

Ionic 3、パイプ用の共有モジュール、遅延ロードされたページ用

ionic 3ページは、IonicPageIonicPageModuleを使用して遅延ロードできます。問題は、これらの遅延ロードされたページがパイプにアクセスできないことです。

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

この質問 問題を説明し、解決策を提供します。提案されたソリューションに関する私の唯一の懸念は、遅延ロードされたすべてのページに共有モジュールpipes.moduleをインポートする必要があることです。

app.module.tsでパイプを1回だけインポートするというangulr2で導入されたNice機能を元に戻すのはどのようなものですか。

共有モジュールpipes.moduleapp.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 {}
10
Amr ElAdawy

私はあなたがこれを処理する適切な方法を見つけようとしているのと同じでした。いくつかの調査の後、私はそれが次の理由でこれを処理することになっている方法であると言います。

From angular faqs

アプリのあらゆる場所で使用するコンポーネント、ディレクティブ、パイプを使用してSharedModuleを作成します。このモジュールは完全に宣言で構成されている必要があり、それらのほとんどはエクスポートされます。

SharedModuleを機能モジュールにインポートします。アプリの起動時に読み込まれるものと、後で遅延読み込みするものの両方です。

また、これはionic 3 doc であり、コンポーネント、パイプ、およびサービスの処理方法に関するいくつかの提案を提供します。

5
Carlos Guzman

App/pwaの起動時にパイプをロードする必要がなく、遅延読み込みを使用してアプリの読み込みを高速化できるため、個々のページモジュールにパイプモジュールをインポートすることを提案する新しいアプローチの方が優れています。

詳細については、 this の記事をご覧ください。

3