我已经能够使用Route的指定loadChildren属性进行延迟加载以使用NgModules.
import {RouterModule} from ‘@angular/router’ import {NgModule} from ‘@angular/core’ @NgModule({ declarations: [ MyComponent,MyHomeRoute ],bootstrap: [ MyComponent ],imports: [ RouterModule.forRoot([ { path: ‘home’,component: MyHomeRoute },{ path: ‘lazy’,loadChildren: ‘./my-lazy-module’ } ]) }) class MyAppModule {}
但有没有办法配置一个路由延迟加载单个组件(而不是NgModule)使用字符串作为“组件”属性?
我总是最终会出现以下错误:
“无法使用’lazyComponent’解析组件”
解决方法
@NgModule({ imports: [ BrowserModule,routing ],declarations: [ AppComponent ],bootstrap: [ AppComponent ] }) export class AppModule { }
然后按需加载:
import { Routes,RouterModule } from '@angular/router'; const routes: Routes= [{path: 'welcome',loadChildren: 'app/screens/welcome.module'}]; export const routing = RouterModule.forRoot(routes);
这里:loadChildren:’app / screens / welcome.module’是ts文件app / screens / welcome.module.ts
有关更多详细示例,请选中:http://plnkr.co/edit/18CZVF?p=preview