tried to lazy load a module in an angular2 rc. app. This module contains routes itself. The app is trying to lazy load the module on clicking the route it is registered on but immediately throws
Error: Uncaught (in promise): Error: Cannot find 'default' in './app/test/test.module'
Routes in app are defined like:
export const routes: Routes = [
{ path: '', component: StartComponent },
{ path: 'route1', component: Route1Component },
{ path: 'test', loadChildren: './app/test/test.module'},
{ path: '**', component: StartComponent } //page not found
];
The TestModule contains following routes:
export const TestRoutes: Routes = [
{ path: '', redirectTo: 'overview' },
{ path: 'overview', component: TestOverviewComponent },
{ path: 'moredata', component: MoreDataComponent }
];
I removed redirectTo and pointed the default route to a real component without luck. Also tried defining routes with children like
export const AdminRoutes: Routes = [
{
path: 'test', component: TestComponent,
children: [
{ path: '', redirectTo: 'overview' },
{ path: 'overview', component: TestOverviewComponent },
{ path: 'moredata', component: MoreDataComponent }
]
}
];
with same result.
Any hints what might be wrong? Loading the module eagerly works as intended.
Regards
Modidfy your module file
./app/test/test.module.
asYou must have skipped the "default" keyword.
OR what else you can do is,
You have to add the exported class name of your module to the loadChildren string, like
change to
as stated in official documentation https://angular.io/docs/ts/latest/guide/router.html
this part is missing in some blog posts, e.g.
https://angularjs.blogspot.de/2016/08/angular-2-rc5-ngmodules-lazy-loading.html