Я читал на форсунках в угловых.После долгих чтений я узнал, что на этапе компиляции модули объединяются и будут доступны в корневом инжекторе.Но компонент, который является частью модуля, получает отдельный инжектор.Почему у него есть отдельный инжектор
@Component({
selector: 'app-parent',
templateUrl: './parent.component.html',
styleUrls: ['./parent.component.css'],
providers:[{ provide: APP_CONFIG, useValue:"From Component" }],
})
export class ParentComponent implements OnInit {
constructor(@Inject(APP_CONFIG) app_config: string) {
//here app_config will be from component
}
}
@NgModule({
declarations:[
ParentComponent
]
providers:[{ provide: APP_CONFIG, useValue:"fromModule" }]
})
class AModule(){
constructor(@Inject(APP_CONFIG) app_config: string){
//Here the value will be "from root"
}
}
@NgModule({
imports:[AModule],
providers:[{ provide: APP_CONFIG, useValue:"fromRoot" }]
})
class AppModule(){ }
Я понимаю, почему значение инжекции в AModule "fromroot" из-за того, что загружаемые модули не ленивые объединяются во время компиляции.Но почему поведение на уровне компонентов отличается?Спасибо!