Angular 2 Router 3.0.0嵌套路由编译

时间:2016-07-06 22:46:00

标签: angular angular-routing angular2-router3

我似乎遇到了Angular 2的新路由器3.0.0-alpha.8的问题。

长话短说,我的app.routes.ts是

export const routes: RouterConfig = [
    { path: '', component: HomeComponent, canActivate: [AuthGuard] },
    { path: 'login', component: LoginComponent },
    ...SectionARoutes,
    ...SectionBRoutes
];

export const APP_ROUTER_PROVIDERS = [
  provideRouter(routes),
  AUTH_PROVIDERS
];

它加载A部分路线就好了,这是:

export const SectionARoutes: RouterConfig = [
  { path: 'a', component: SectionAComponent, canActivate: [AuthGuard] },
  { path: 'a-more', component: SectionAMoreComponent, canActivate: [AuthGuard] },
  ...SectionAMoreRoutes
];

但它无法加载嵌套的SectionAMoreRoutes。当我说无法加载时我的意思是我得到的错误是:

zone.js:463 Error: Uncaught (in promise): Error: Error: XHR error (404 Not Found) 
    loading http://localhost:4200/app/+a/+a-more/a-more.routes.ts.js(…)

当路由嵌套时,我的打字稿似乎没有被编译成js。我会喜欢任何关于如何继续的帮助或想法,因为我很丢失:(

感谢!!!

额外信息: 我的主要内容有:

bootstrap(AppComponent, [
  ...
  APP_ROUTER_PROVIDERS,
]

Section-a-more路线如下:

export const SectionARoutes: RouterConfig = [
  { path: '', component: SectionAMoreListComponent, canActivate: [AuthGuard] },
  { path: '/:id', component: SectionAMoreDetailComponent, canActivate: [AuthGuard] }
];

TLDR:为什么我的嵌套路由不会在Angular 2和Router 3.0.0中编译

1 个答案:

答案 0 :(得分:0)

我疯了2天试图解决这个问题。

尝试删除app.routes.js文件(不是TS文件)

然后在命令行输入

  

tsc app / app.routes.ts

(或路由文件的位置)。

这应该重新编译并创建一个新的app.route.js文件。