2016-11-07 25 views
0

我一直在試圖構建一個角度2應用程序。 我有這個基本結構。指定從嵌套模塊Angular 2通過NPM包進行路由

的AppModule

  • AppComponent
  • App.Routing
  • App.template
  • App.module

我有另一個模塊,讓我們說 'SampleModule' 作爲NPM包,其中我正在加載和導入App.module文件

現在我的問題是在應用程序路由中指定一個路由指向'SampleModule'內的組件,讓我們說'SampleComponent'。

我已經嘗試從SampleModule公開組件,我試圖在應用程序路由中導入。它沒有工作。它說,找不到名稱SampleComponent

任何幫助,非常感謝。

+0

您可以提供的代碼??。 –

回答

0

由於'SampleModule'是一個npm包,'SampleModule'的文件可以在node_modules文件夾下找到(項目根路徑)。

先加入以下行導出SampleComponet到SampleModule

@NgModule({ 
    declarations: [SampleComponet], 
    exports: [SampleComponet] <== this line 
}) 
export class SampleModule{} 

然後在你的App.module,導入 'SampleModule'

import { SampleModule } from '/path_to_node_modules/path_to_sample_module/'; 

@NgModule({ 
    imports: [SampleModule],<== this line 
}) 
export class AppModule{} 

現在你可以導入 'SampleComponent' 直接您的App.Routing通過以下進口說明

import { SampleComponent } from '/path_to_node_modules/path_to_componet/'; 

{ path: 'sample', component: SampleComponent } 

注意:如果SampleModule都有自己的路由,它被定義爲如下

const routes: Routes = [~routings~] 

    @NgModule({ 
     imports: [RouterModule.forChild(routes)], 
     declarations: [SampleComponet], 
     exports: [SampleComponet] <== this line 
    }) 
    export class SampleModule{} 

然後使用下面的代碼在App路由器

{ 
    path: 'sample', 
    loadChildren: './path_to_node_modules/path_to_sample_module/sample.module#SampleModule' 
}