2

我正在尝试将特定于环境的变量传递给我自己的库。我正在通过 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;
}
4

0 回答 0