我有两个使用这些版本的Angular项目:
- 9.0.0-下一个6
- 8.1.0
在版本9中,我使用它来提供和注入window
对象:
@NgModule({
providers: [
{
provide: Window,
useValue: window
},
]
})
export class TestComponent implements OnInit {
constructor(@Inject(Window) private window: Window)
}
哪个工作正常。
将这种方法用于版本8会在编译期间引发警告和错误:
警告:无法解析TestComponent的所有参数……
我通过使用单引号解决了它,如下所示:
@NgModule({
providers: [
{
provide: 'Window',
useValue: window
},
]
})
export class TestComponent implements OnInit {
constructor(@Inject('Window') private window: Window)
}
这两个版本有什么区别?
导致此问题的Angular 8和9有什么区别?
我希望我能从悬赏中得到一个答案,我和其他人可以从中得到更好的了解和理解,以及Angular和不同版本的框架中的provider和di如何工作。
—
lampshade