Angular2延迟加载路由问题
Angular2 lazy loading a route issue
Angular2 延迟加载路由问题。
我正在使用 Angular2、typscript、html5 和 systemjs。
我正在尝试让延迟加载为我的基本路线之一工作。
这是我正在关注的博客,但我似乎无法正常工作:http://blog.angular-university.io/angular2-ngmodule/
这是我得到的控制台错误:
未捕获(承诺):错误:无法匹配任何路由。 URL 段:'500'
我的页面是第500页。
下面我在当前状态下添加了我的文件。
500 页的模块:
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { Component500 } from './500.component';
import { ModuleRouting500 } from './500.routes';
@NgModule({
imports: [RouterModule, ModuleRouting500],
declarations: [Component500],
exports: [Component500],
providers: []
})
export default class Module500 { }
500 页的路由:
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { Component500 } from './index';
const Routes500: Routes[] = [
{
path: '',
loadChildren: Component500
}
];
@NgModule({
imports: [RouterModule.forChild(Routes500)],
exports: [RouterModule],
providers: []
})
export class ModuleRouting500 { }
这是我的核心应用路由页面:(我这里没有添加路由500)
import { Routes } from '@angular/router';
import { HomeRoutes } from './components/home/index';
export const routes: Routes = [
...HomeRoutes,
{ 路径:'500',loadChildren:'app/components/500/500.module#Module500' }
];
这是我的核心应用模块页面:(我这里没有添加模块500)
import { NgModule } from '@angular/core';
import { routes } from './app.routes';
import { BrowserModule } from '@angular/platform-browser';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { FormsModule} from '@angular/forms';
import { APP_BASE_HREF, CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
import { HomeModule } from './components/home/home.module';
import { AuthService } from './services/authService/authService';
import { Environment } from './models/environment/environment';
@NgModule({
imports: [BrowserModule, FormsModule, CommonModule, HttpModule, RouterModule.forRoot(routes),
HomeModule
],
declarations: [AppComponent],
providers: [{
provide: APP_BASE_HREF,
useValue: '<%= APP_BASE %>'},
AuthService,
Environment
],
bootstrap: [AppComponent]
})
export class AppModule { }
这是第 500 页的 index.ts 文件:
export * from './500.component';
export * from './500.routes';
这是我的文件夹结构的屏幕截图:
这是我当前收到的控制台错误的屏幕截图:
完整文件夹结构:
你必须通过这样做在 App 路由中添加你的惰性路由:
应用路线
export const routes: Routes = [
...,
{ path: '500', loadChildren: 'app/components/500/500.module#Module500' },
];
您必须将 500.routes.ts 更改为如下模块:
500.routes.ts:
import { NgModule, ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { Component500 } from './index';
const routes: Routes = [
{
path: '',
component: Component500,
}
];
@NgModule({
imports: [RouterModule.forChild(Routes500)],
exports: [RouterModule],
providers: []
})
export const routing: ModuleWithProviders = RouterModule.forChild(routes);
然后,在 500.module.ts 中,您必须加载 500.routes.ts
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { Component500 } from './500.component';
import { routing } from './500.routes';
@NgModule({
imports: [RouterModule, routing],
declarations: [Component500]
})
export class Module500 { }
现在,无论是否懒惰,每个模块都知道路由。
Angular2 延迟加载路由问题。
我正在使用 Angular2、typscript、html5 和 systemjs。
我正在尝试让延迟加载为我的基本路线之一工作。 这是我正在关注的博客,但我似乎无法正常工作:http://blog.angular-university.io/angular2-ngmodule/
这是我得到的控制台错误:
未捕获(承诺):错误:无法匹配任何路由。 URL 段:'500'
我的页面是第500页。 下面我在当前状态下添加了我的文件。
500 页的模块:
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { Component500 } from './500.component';
import { ModuleRouting500 } from './500.routes';
@NgModule({
imports: [RouterModule, ModuleRouting500],
declarations: [Component500],
exports: [Component500],
providers: []
})
export default class Module500 { }
500 页的路由:
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { Component500 } from './index';
const Routes500: Routes[] = [
{
path: '',
loadChildren: Component500
}
];
@NgModule({
imports: [RouterModule.forChild(Routes500)],
exports: [RouterModule],
providers: []
})
export class ModuleRouting500 { }
这是我的核心应用路由页面:(我这里没有添加路由500)
import { Routes } from '@angular/router';
import { HomeRoutes } from './components/home/index';
export const routes: Routes = [
...HomeRoutes,
{ 路径:'500',loadChildren:'app/components/500/500.module#Module500' } ];
这是我的核心应用模块页面:(我这里没有添加模块500)
import { NgModule } from '@angular/core';
import { routes } from './app.routes';
import { BrowserModule } from '@angular/platform-browser';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { FormsModule} from '@angular/forms';
import { APP_BASE_HREF, CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
import { HomeModule } from './components/home/home.module';
import { AuthService } from './services/authService/authService';
import { Environment } from './models/environment/environment';
@NgModule({
imports: [BrowserModule, FormsModule, CommonModule, HttpModule, RouterModule.forRoot(routes),
HomeModule
],
declarations: [AppComponent],
providers: [{
provide: APP_BASE_HREF,
useValue: '<%= APP_BASE %>'},
AuthService,
Environment
],
bootstrap: [AppComponent]
})
export class AppModule { }
这是第 500 页的 index.ts 文件:
export * from './500.component';
export * from './500.routes';
这是我的文件夹结构的屏幕截图:
这是我当前收到的控制台错误的屏幕截图:
完整文件夹结构:
你必须通过这样做在 App 路由中添加你的惰性路由:
应用路线
export const routes: Routes = [
...,
{ path: '500', loadChildren: 'app/components/500/500.module#Module500' },
];
您必须将 500.routes.ts 更改为如下模块:
500.routes.ts:
import { NgModule, ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { Component500 } from './index';
const routes: Routes = [
{
path: '',
component: Component500,
}
];
@NgModule({
imports: [RouterModule.forChild(Routes500)],
exports: [RouterModule],
providers: []
})
export const routing: ModuleWithProviders = RouterModule.forChild(routes);
然后,在 500.module.ts 中,您必须加载 500.routes.ts
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { Component500 } from './500.component';
import { routing } from './500.routes';
@NgModule({
imports: [RouterModule, routing],
declarations: [Component500]
})
export class Module500 { }
现在,无论是否懒惰,每个模块都知道路由。