2017-04-19 7 views
1

角度4.0.2を使用しています。私はnavbar、サイドバーなどのhtmlレイアウトからなるアプリケーション用の再利用可能なレイアウトモジュールを作りたいと思っています。テンプレートにはrouter-outletが含まれていますが、外部から注入されたルートを持つ方法はわかりません。外部角度モジュールに経路を注入する方法

@NgModule({ 
    imports: [ 
     CommonModule, 
     FormsModule, 
     RouterModule 
    ], 
    declarations: [Layout, Sidebar, Navbar] 
}) 
export class LayoutModule { 
    static forRoot(routes): ModuleWithProviders { 
     return { 
      ngModule: LayoutModule, 
      providers: [provideRoutes(routes)] 
     } 
    } 
} 

を、その後application.moduleに、私は(アプリケーション固有の)ルートを提供モジュールをインポートします:

LayoutModule.forRoot(PagesRoutes) 

残念ながら、それは動作しませんがここで

は、私がしようとしていますものです。私のルートが登録されていないと私はそれを変更したとき、私は、しかし

404を取得:彼らは依存関係として注入されていない以外

@NgModule({ 
    imports: [ 
     CommonModule, 
     FormsModule, 
     RouterModule 
    ], 
    declarations: [Layout, Sidebar, Navbar], 
    providers: [provideRoutes(PagesRoutes)] 

}) 
export class LayoutModule { 
} 

が、その後のルートは、正常に動作します。

どうすればいいですか?

答えて

0

私はこの問題を解決する回避策を見つけることができました。私のクライアントアプリの

私はこの方法が機能するルートを注入する外部LayoutModule周り

@NgModule({ 
    imports: [ 
     RouterModule, 
     LayoutModule 
    ], 
    providers: [provideRoutes(PagesRoutes)] 

}) 
export class LayoutWrapperModule { 
} 

を薄いラッパーを持っています。

関連する問題