我正在尝试在我的角应用中动态添加路线
const routes: Routes = [
// my static routes
];
let sections = localStorage.getItem('sections');
if (sections) {
JSON.parse(sections).forEach(section => {
routes.push({ path: section.route, component: SectionComponent });
});
}
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule {
}
这在dev中工作正常但在生产构建中不会添加动态路由。我已经尝试使用工厂来确保添加了路由但是使用函数调用构建失败。
@NgModule({
imports: [RouterModule.forRoot(myRouteFactory())],
exports: [RouterModule]
})
export class AppRoutingModule {
}
我还尝试将我的部分组件设置为默认路由,这种路由主要有效,但是当我从一个部分转到另一个部分时,它不会触发路由更改并且它会保留在第一个部分。
const routes: Routes = [
{ path: '**', component: SectionComponent }
];
如果我去http://myap.com/firstsection它可以正常工作。 然后,如果我转到http://myap.com/secondsection,即使网址已更改,它仍会保留在第一部分。
如果我然后转到http://myap.com/oneofmystaticroutes然后转到http://myap.com/secondsection它就可以了。
答案 0 :(得分:0)
我认为问题出在AOT的某个地方。
我的建议是将路由配置移动到AppComponent。 注入路由器和路由,然后附加您需要的路线,然后尝试使用 resetConfig
routes.push({ path: section.route, component: SectionComponent });
router.resetConfig(routes);