我正在尝试将特定于环境的变量传递给我自己的库。我正在通过 forRoot() 传递它。对于硬编码的值,我可以传递它,但对于环境值,当我将它传递给库时,它显示为未定义。
const rootUrl = environment.rootURL;
@NgModule({
imports: [
// configs go in here
coachModule.forRoot(
{
apiURL: 'test.com',
scoreData: {
score: 708
},
rootURL: rootUrl
}),
...
rootUrl 是在我在@NgModule 上放置断点时定义的,但是当我在库中放置断点时 rootURL 是未定义的。
我正在使用 Angular 5。我尝试用谷歌搜索问题,但找不到任何解决方案。
这是一个常见问题吗?传递此环境变量的另一种方法是什么?任何帮助表示赞赏:)
更新:我发现它为什么不能正常工作。它是用 --aot 构建的,所以当我调试时,我能够看到 rootUrl 的值,因为我在运行时检查它,但它在编译时将它传递给我的库(具有未定义的值)
我现在正在尝试这种可能的解决方案。如果有人有任何其他潜在的解决方案,我将不胜感激
解决方案:我的解决方案是将变量作为函数传递,因为环境变量是编译的。这是它必须在运行时执行它们。
我刚刚创建了如下函数并将引用传递给库
export function getRootURL() {
return environment.rootURL;
}