如何在subscribe()方法中的ngOnInIt()方法初始化的离子模板中使用变量?

时间:2019-07-19 07:20:06

标签: angular7 ionic4 templating

我已经声明了一个类变量(属性),并在ngOnInit()方法中对其进行了初始化。 我已初始化的值是从可观察到的Route.paramMap.subscribe()接收的。 初始化是在subscribe()方法中完成的。 给出的代码:

.ts文件:

export class EditOfferPage implements OnInit {
  place: Place;
...
 ngOnInit() {
    this.route.paramMap.subscribe(paramMap => {

    this.place = this.placesService.getPlace(paramMap.get('placeId'));

.html(模板文件)

<ion-back-button
        [defaultHref]="'/places/tabs/offers/' + place.id"></ion-back-button>

在模板中,我得到了未定义的 place 变量的错误。

无法发布错误图片Error Link here

这显然是因为subscription()方法是单独运行的(线程),并且模板是在初始化之前加载的。

我尝试在声明时进行初始化,并且可以使用。,但是我想知道更好的选择/方法。

export class EditOfferPage implements OnInit {
  place: Place = new Place('', '', '', '', 0);

我希望程序在订阅时等待值初始化,然后仅加载模板。 请提出更好的选择。

1 个答案:

答案 0 :(得分:0)

使用?对于未定义的对象:

<ion-back-button
    [defaultHref]="'/places/tabs/offers/' + place?.id"></ion-back-button>