如果你正在谈论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调查过这个话题。 –