При первом отображении представления переменные не устанавливаются (будут неопределенными);
Как только ваша служба возвращает ответ на вызов this.api.getPay(this.donationId)
, переменные устанавливаются на то, что им нужно.
ваши варианты:
1) поместите ngIf вокруг блока с переменными в вашем шаблоне:
<ng-content *ngIf= "!!paymentDetails">
Project : <strong>{{paymentDetails.project_name}}</strong><br/>
Status: <strong>{{paymentDetails?.status}}</strong><br/>
</ng-content>
2) Измените контроллер, чтобы установить переменные какНаблюдаемые и использовать асинхронный канал:
this.getPay$ = this.api.getPay(this.donationId)
и
Project : <strong>{{(getPay$ | async).paymentDetails.project_name}}</strong><br/>
Status: <strong>{{(getPay$ | async).paymentDetails.status}}</strong><br/>