Tôi có hai dự án Angular sử dụng các phiên bản này:
- 9.0.0-tiếp theo.6
- 8.1.0
Trong phiên bản 9, tôi đã sử dụng điều này để cung cấp và tiêm window
obhject:
@NgModule({
providers: [
{
provide: Window,
useValue: window
},
]
})
export class TestComponent implements OnInit {
constructor(@Inject(Window) private window: Window)
}
Mà hoạt động tốt.
Thực hiện phương pháp này cho phiên bản 8 đã ném các cảnh báo và lỗi trong quá trình biên dịch:
Cảnh báo: Không thể giải quyết tất cả các tham số cho TestComponent
Tôi đã giải quyết nó bằng cách sử dụng dấu ngoặc đơn, như thế này:
@NgModule({
providers: [
{
provide: 'Window',
useValue: window
},
]
})
export class TestComponent implements OnInit {
constructor(@Inject('Window') private window: Window)
}
Sự khác biệt giữa cả hai phiên bản là gì?
Sự khác biệt trong Angular 8 và 9 gây ra điều này là gì?