使用forRoot()

时间:2018-11-09 17:55:53

标签: angular typescript environment-variables ng-modules angular-aot

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

0 个答案:

没有答案