角度AoT编译器中的导出变量

问题描述 投票:1回答:2

我试图实现动态配置,如在此post中可以看到的。

一切都在JiT编译器中工作,但我得到了

ERROR in Error during template compile of 'environment'
  Function calls are not supported in decorators but 'Environment' was called.

当尝试使用AoT编译器进行构建时。

这是我的environment.ts(注意,环境已导出):

export class Environment extends DynamicEnvironment {
  public production: boolean;

  constructor() {
    super();
    this.production = false;
  }
}

export const environment = new Environment();

我仍然想以标准方式some.component.ts使用环境:

import { environment } from '../environments/environment';

console.log(environment.config.property);
javascript angular angular-aot
2个回答
1
投票
不要。认真地,远离这两个文件(environment.tsenvironment.prod.ts)。这些不是关于“环境”一词的DevOps含义,而是关于调试常量。

如果需要知道您是否正在运行调试版本,请导入isDevMode

import { isDevMode } from '@angular/core';

如果需要动态配置,只需从某个地方读取一个Json或让服务器端将其作为脚本标签注入,然后直接或通过Dependency Injection即可读取(这并不难做到。)>]

但是请不要弄乱那些文件。相信我,您稍后会感谢我;)


0
投票
[通过创建config.module.tsconfig.service.ts解决了这个问题。 Config模块声明提供程序:
© www.soinside.com 2019 - 2024. All rights reserved.