Хотя решение, предоставляемое @indrajeet, подойдет. Я хотел бы предложить решение, используя async
трубу, как это -
component.ts
export class AboutmeComponent implements OnInit {
personalInformation$: Observable<any>;
constructor(private portfolioService: PortfolioService) {
}
ngOnInit() {
this.personalInformation$ = this.portfolioService.getPersonalInformation();
}
}
HTML
<p>aboutme works!</p>
<mat-grid-list cols=4>
<mat-grid-tile [colspan]=3>
</mat-grid-tile>
<mat-grid-tile [colspan]=1>
<ng-container *ngIf="(personalInformation$ | async) as personalInformation">
<img [src]="personalInformation.profilePhotoUrl" alt="">
</ng-container>
</mat-grid-tile>
</mat-grid-list>
Наличие async
канала в шаблоне позволяет избежать подписки на наблюдаемое в файле TS. async
заботится о развертывании значения из наблюдаемого. Это также гарантирует отмену подписки наблюдаемого [за сценой] после разрушения компонента.