tt9*_*tt9 9 dependency-injection angular
在Angular 2的早期RC版本中,我能够通过添加注入窗口对象
{provide: Window, useValue: window}
到提供者数组.
由于升级到角度2(2.1.0)的最新稳定版本,现在抛出控制台错误
compiler.umd.js:14268Uncaught错误:无法解析LoginComponent的所有参数:(AuthService,UserMessagesService,?).
的?在参数列表中是我试图注入Window对象的地方.
Vla*_*vic 17
试试:
@NgModule({
declarations: [...],
imports: [...],
providers: [
{ provide: "windowObject", useValue: window}
]
})
Run Code Online (Sandbox Code Playgroud)
出口类HomeModule {}
在您的组件中:
constructor(@Inject("windowObject") window: Window})
Run Code Online (Sandbox Code Playgroud)
Joh*_*ohn 13
为了使它能与AOT一起使用,你需要使用useFactory而不是useValue:
export function windowFactory() {
return window;
}
Run Code Online (Sandbox Code Playgroud)
模块:
providers: [
{ provide: 'window', useFactory: windowFactory }
]
Run Code Online (Sandbox Code Playgroud)
零件:
constructor(@Inject('window') window: Window})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8828 次 |
| 最近记录: |