Если вы вызываете getContent()
в HTML / шаблоне, вы, скорее всего, можете избежать этой ошибки:
Создание pageContent
изначально null
и использование *ngIf
только для отображения содержимогопосле асинхронного разрешения:
Компонент:
public pageContent: any = null;
Шаблон:
<div *ngIf="pageContent">{{getContent()}}</div>
Или вы можете вместо этогоОператоры RxJS, такие как map()
и async
pipe:
Компонент:
import { Component, OnInit } from '@angular/core';
import { DataService } from 'src/app/services/data.service';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
@Component({
selector: 'app-membership',
templateUrl: './membership.page.html',
styleUrls: ['./membership.page.scss'],
})
export class MembershipPage implements OnInit {
public pageContent: Observable<string>;
public content: string;
constructor(private _data: DataService) { }
ngOnInit() {
this.pageContent = this._data.getPagesData('memberships')
.pipe(
map(page => page[0].content.rendered.replace(/\[(.+?)\]/g, ""))
);
}
}
Шаблон:
<div>{{pageContent | async}}</div>
При этом вам, вероятно, следует провести дополнительные проверки, чтобы убедиться, что каждое подчиненное свойство доступно до доступа к нему, но обычно этот тип ошибки возникает из-за того, что вы пытаетесь получить доступ к содержимому до его разрешения.
Надеюсь, это поможет!