Angular 角度6-如何根据变量值注册不同的路由

Angular 角度6-如何根据变量值注册不同的路由,angular,angular6,angular-routing,Angular,Angular6,Angular Routing,我正在尝试根据运行应用程序的区域注册一组不同的路由 该区域位于一个JSON文件中,该文件在构建应用程序后被动态替换,我通过以下方式将其加载到我的environment.ts文件中: import config from '../assets/config/config.json'; export const environment = config; 然后,环境变量包含如下内容: { "stage": "dev", "endpoint": "<backend endpo

我正在尝试根据运行应用程序的区域注册一组不同的路由

该区域位于一个JSON文件中,该文件在构建应用程序后被动态替换,我通过以下方式将其加载到我的
environment.ts
文件中:

import config from '../assets/config/config.json';

export const environment = config;
然后,环境变量包含如下内容:

{
    "stage": "dev",
    "endpoint": "<backend endpoint>",
    "realm": "<US or CA>"
}
当我使用
ng-serve
ng-serve--aot
运行应用程序时,这工作得非常好,但是当我尝试使用
ng-build--prod--aot
构建用于生产的应用程序时,我始终得到以下错误:

ERROR in Cannot read property 'loadChildren' of null
我可以根据环境更改加载路由的方式,但到目前为止我尝试的所有方法都给出了类似的结果


谢谢

您尝试过将舞台从“开发”切换到“构建”吗?

通过此链接-。希望有帮助@KrunalShah不幸的是,它没有,我已经看过了,但它不是同一个根本原因,我没有使用默认值,基本上我已经有了适合他的解决方案,但仍然有错误…这里的阶段没有在构建过程中使用,这只是我们在应用程序中使用的另一个变量,但它与角度AFAIK无关。您是否尝试定义一个“RoutesForCA”和一个“RoutesForUS”变量。然后在MyModule中读取配置并将路由注入路由器模块?我这样做了,但页面不起作用。如果您直接从URL访问它们,则必须将所有组件添加到entryComponents数组,并且不会保存父模块为路由设置的前缀,如果你已经建立了CA,你就不能访问美国航线了。使用此设置,您必须选择其中一个。如果您想从这两种路由中进行选择,我建议您使用一个全局变量,您可以在浏览器上以友好方式设置,并通过我在上一条评论中告诉您的ctor方法进行设置。是的,我不想让这两种路由都可以访问,只需要与
environment.realm
值对应的一种路由,虽然你之前的评论让它发挥了作用,但我认为它在我的案例中并不实用,因为我提到了它的缺点。
ERROR in Cannot read property 'loadChildren' of null