ionic 3ページは、IonicPage
とIonicPageModule
を使用して遅延ロードできます。問題は、これらの遅延ロードされたページがパイプにアクセスできないことです。
Failed to navigate: Template parse errors:
The pipe 'myPipe' could not be found ("")
この質問 問題を説明し、解決策を提供します。提案されたソリューションに関する私の唯一の懸念は、遅延ロードされたすべてのページに共有モジュールpipes.module
をインポートする必要があることです。
app.module.ts
でパイプを1回だけインポートするというangulr2で導入されたNice機能を元に戻すのはどのようなものですか。
共有モジュール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 {}
私はあなたがこれを処理する適切な方法を見つけようとしているのと同じでした。いくつかの調査の後、私はそれが次の理由でこれを処理することになっている方法であると言います。
From angular faqs :
アプリのあらゆる場所で使用するコンポーネント、ディレクティブ、パイプを使用してSharedModuleを作成します。このモジュールは完全に宣言で構成されている必要があり、それらのほとんどはエクスポートされます。
SharedModuleを機能モジュールにインポートします。アプリの起動時に読み込まれるものと、後で遅延読み込みするものの両方です。
また、これはionic 3 doc であり、コンポーネント、パイプ、およびサービスの処理方法に関するいくつかの提案を提供します。
App/pwaの起動時にパイプをロードする必要がなく、遅延読み込みを使用してアプリの読み込みを高速化できるため、個々のページモジュールにパイプモジュールをインポートすることを提案する新しいアプローチの方が優れています。
詳細については、 this の記事をご覧ください。