如何在导出的函数中访问窗口?

时间:2020-05-30 00:21:57

标签: angular openapi-generator

鉴于opeapi生成器生成的模块,它期望配置参数,尤其是API调用的baseUrl。 我需要从注入到窗口的配置对象中恢复baseUrl。 我该如何恢复?我无法直接访问该窗口,因为编译器阻止了我。 我该怎么办?

导入的角度模块:

ApiModule.forRoot(apiConfig)

功能:

export function apiConfig() {
  return new Configuration({
    basePath: '',
  });
}

我期望的是:

export function apiConfig () {
   return new Configuration ({
     basePath: 'window.config.baseUrl',
   });
}

解决方案:

function _window(): any {
  return window
}

export function apiConfig() {
  return new Configuration({
    basePath: _window().config,
  });
}

2 个答案:

答案 0 :(得分:0)

您可能必须包装窗口对象引用,然后将其添加为提供程序以在组件中使用它。看到这里:https://juristr.com/blog/2016/09/ng2-get-window-ref/

答案 1 :(得分:0)

只需在文件导入下方声明window对象

import ....

declare let window: any;

export function apiConfig () {
  return new Configuration ({
      basePath: window.config.baseUrl,
 });
}