Я вызываю метод my service для получения записей и обновления состояния (ngsx) с помощью логического значения, если запись существует. Если запись существует, я устанавливаю значение соглашенияExists в состоянии true, иначе устанавливая его в false. Я пытаюсь загрузить модальное диалоговое окно в компонент приложения и подписаться на наблюдаемую, чтобы проверить, существует ли запись. В тот момент, когда первый раз, когда компонент приложения загружается, само соглашениеModalStatus не определено и инициализируется только после refre sh. Может ли кто-нибудь сказать мне, в чем проблема. Как я могу решить эту проблему
appcomponent
public ngOnInit() {
this.agreementModalState$.pipe(first()).subscribe(agreementModalStatus => {
console.log('Inside ngOnit- AppComponent');
console.log(agreementModalStatus.agreementExists);
console.log(agreementModalStatus.isInteracted);
if (agreementModalStatus !== undefined && agreementModalStatus.isInteracted === false && agreementModalStatus.agreementExists) {
this.loadModalDialog();
}
});
}
public loadModalDialog() {
this.modal = this.modalService.open(AgreementComponent, { size: 'lg', centered: true , backdrop: 'static'});
}
компонент
public getOutstandingAgreements(Id: number) {
this.loading = true;
this.agreementsService
.getOutstandingAgreements(Id)
.subscribe((data: AgreementsModel[]) => {
if (data.length > 0) {
console.log('IF block');
this.store.dispatch(new SetAgreementStatus({ isInteracted: false , agreementExists: true}));
this.myData = data;
this.agreementData = this.myData[0].data;
this.agreementLength = this.myData.length;
this.SetWarningMessage(0);
this.loading = false;
} else {
console.log('Else block');
this.store.dispatch(new SetAgreementStatus({ isInteracted: false , agreementExists: false}));
}
});
}