首页 > 解决方案 > 当路由具有子模块时,Angular 应用程序无法有条件地加载路由

问题描述

我需要一种方法来构建启用或不启用“评论”的应用程序。所以我想我可以使用环境变量。

import { environment } from 'app/../environments/environment';

let routes: Routes = [
    { path: 'jobs', component: JobsComponent}
];

if(environment.enable_comments) {
    // routes only for for the second app
    routes.push(
        { path: 'jobs/comments', loadChildren: 'app/comments/comments.module#CommentsModule'}
    );
}
@NgModule({
    imports: [ RouterModule.forRoot(routes, {preloadingStrategy: PreloadAllModules }) ],
    exports: [ RouterModule ]
})

奇怪的是,它有时有效,有时无效。它只在这条路线上失败 jobs/comments

core.js:15714 错误错误:未捕获(承诺):错误:找不到模块...

奇怪的是,当我删除条件时。我工作得很好。

const routes: Routes = [
    { path: 'jobs', component: JobsComponent},
    { path: 'jobs/comments', loadChildren: 'app/comments/comments.module#CommentsModule'}
];
@NgModule({
    imports: [ RouterModule.forRoot(routes, {preloadingStrategy: PreloadAllModules }) ],
    exports: [ RouterModule ]
})

我在这里感到困惑。

标签: angularangular2-routing

解决方案


推荐阅读