Я делаю простую инъекцию службы в мой компонент через конструктор.И в constructor
, и в ngOnInit
я распечатываю значение и вижу, что это объект, как и ожидалось.В ngOnInit
я делаю подписку valueChanges
следующим образом:
constructor(private readonly detailService: DetailService) {
}
ngOnInit(): void {
this.updateHazardClassificationSingleton();
this.thisTabFormGroup.valueChanges.pipe(
takeUntil(this.unsubscribe$)
).subscribe(this.updateHazardClassificationSingleton);
}
private updateHazardClassificationSingleton(): void {
this.detailService.setHazardClassification(this.hazardClassification);
this.detailService.setHazardClassificationIsSet(this.hazardClassificationIsSet);
}
Когда метод updateHazardClassificationSingleton
запускается вручную, внедренная служба имеет значение.Когда он запускается через подписку, внедренный сервис равен undefined
.В моем коде нет ничего, что напрямую устанавливало бы значение введенного объекта.Как это могло быть неопределенным?
Подробная служба предоставляется в корне.
@Injectable({
providedIn: 'root'
})
export class DetailService {