如果你正在談論ng2 rc 5,那麼NgModule已經被引入,就像angularj 1模塊的概念一樣。記住你是加載模塊,而不是組件 設置rootModule爲:
import { AppComponent } from './app.component';
import { routing } from './app.routing';
@NgModule({
imports: [ BrowserModule,HttpModule,JsonpModule, routing ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
而且裏面裏面./app.routing.ts
const routes: Routes= GetScreens();
export const routing = RouterModule.forRoot(routes);
function GetScreens(){
var results :Array<Object> = Array<Object>();
let screens :Array<string> = ["page1","page2","page3"]
results.push({ path: '' ,redirectTo: 'welcome', pathMatch: 'full'});
results.push({ path: 'welcome', loadChildren: 'app/screens/welcome.module' })
screens.map(screenId => results.push({path: screenId, loadChildren: 'app/screens/' + screenId + '.module' }))
return results
}
ADN終於在這裏你想要的:{路徑: '歡迎' ,loadChildren:'app/screens/welcome.module'}。
「ap/screens/welcom.module.ts」是您磁盤上的文件。
let screens :Array<string> = ["page1","page2","page3"]
這裏用於屏幕名稱的數組可以從json調用中讀取。 在http://plnkr.co/edit/nm5m7N?p=preview你可以在上面找到完整的細節並檢查app/MyRouterLinks.ts,它調用並獲取json文件來加載組件。 或看到源代碼:https://github.com/Longfld/DynamicalRouter
你試過http://stackoverflow.com/a/38096260/217408 –
@GünterZöchbauer是的,我也問過這個問題。我使用它,它與RC.4完美配合。事情與Rc5你需要將它們添加到entryComponents,它變成一個痛苦。感覺像應該有一個更簡單的方法,我完全錯過了。 – user1640736
我明白了。還沒有用RC.5調查過這個話題。 –