在我的Angular 2应用程序中,我使用此处描述的内容提供了窗口对象:Angular2 - How to inject window into an angular2 service。
但是,用于AOT的ngc编译器会返回多个错误。首先,我必须改变我提供依赖的方式(注意'Window'):
@NgModule({
providers: [
{ provide: 'Window', useValue: window }
],
...
})
export class AppModule {}
在我的组件中(注意类型'any'):
@Component({ ... })
export default class MyComponent {
constructor (
@Inject('Window') private window: any
) {}
...
但是我的模块ngfactory中的ngc编译器仍然会出现以下错误:
属性'窗口'在类型
上不存在
同样,tsc编译器一切正常。
答案 0 :(得分:1)
最后,我按照此处描述的内容修正了我的问题:http://juristr.com/blog/2016/09/ng2-get-window-ref/
答案 1 :(得分:1)
以下简单的解决方案为我做了诀窍:
在“ @NgModule ”下的“提供商”部分中:
{provide: 'window', useFactory: getWindow }
确保导出“getWindow”方法:
export function getWindow() { return window; }