Mam dwa projekty Angular wykorzystujące te wersje:
- 9.0.0-next.6
- 8.1.0
W wersji 9 użyłem tego, aby dostarczyć i wstrzyknąć window
obiekt:
@NgModule({
providers: [
{
provide: Window,
useValue: window
},
]
})
export class TestComponent implements OnInit {
constructor(@Inject(Window) private window: Window)
}
Które działa dobrze.
Takie podejście do wersji 8 generowało ostrzeżenia i błędy podczas kompilacji:
Ostrzeżenie: nie można rozwiązać wszystkich parametrów TestComponent…
Rozwiązałem to za pomocą pojedynczych cudzysłowów, takich jak to:
@NgModule({
providers: [
{
provide: 'Window',
useValue: window
},
]
})
export class TestComponent implements OnInit {
constructor(@Inject('Window') private window: Window)
}
Jaka jest różnica między obiema wersjami?
Jaka jest różnica w Angular 8 i 9, która powoduje to?