我已经声明了一个类变量(属性),并在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);
我希望程序在订阅时等待值初始化,然后仅加载模板。 请提出更好的选择。
答案 0 :(得分:0)
使用?对于未定义的对象:
<ion-back-button
[defaultHref]="'/places/tabs/offers/' + place?.id"></ion-back-button>