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