angular - 如何将窗口注入(inject) Angular 2.1.0

标签 angular dependency-injection

在 Angular 2 的早期 RC 版本中,我能够通过添加

来注入(inject)窗口对象

{provide: Window, useValue: window}

到提供者数组。

自从升级到 angular 2 (2.1.0) 的最新稳定版本后,现在会抛出一个控制台错误

compiler.umd.js:14268Uncaught Error: Can't resolve all parameters for LoginComponent: (AuthService, UserMessagesService, ?).

那个?在参数列表中是我试图注入(inject) Window 对象的地方。

最佳答案

尝试:

@NgModule({
  declarations: [...],
  imports: [...],
  providers: [
   { provide: "windowObject", useValue: window}
  ]
})

export class HomeModule {}

在你的组件中:

constructor(@Inject("windowObject") window: Window})

关于angular - 如何将窗口注入(inject) Angular 2.1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40222084/

相关文章:

c# - 在 Ninject 中寻找通用接口(interface)的具体实现

javascript - Twilio 聊天 API,getUnconsumedMessagesCount 始终为 0

java - 在 Spring 中将 bean 注册为字符串列表

asp.net-mvc - Ninject - 基于子域动态指定连接字符串

javascript - 迁移到 Angular 2.0 和 BindToController

testing - 当我们可以做一个委托(delegate)使其可测试时,为什么要提取一个接口(interface)?

c# - 单元测试组合根?

angular - 在 Ionic 4 应用程序中使用 @ionic-native/http

Angular2 在获取资源时监视 302 重定向

node.js - 使用 Angular 和 Filesaver.js 下载文件不起作用