【发布时间】:2019-06-22 00:23:17
【问题描述】:
我对 Ionic 和 JS 编程很陌生,所以请原谅我的无知。我已经能够从我设置的其他 REST 提供程序获取数据,并且更新的值可以正常显示。几乎从其他一些工作功能中复制了代码。这一次,无论我怎么尝试,都不会更新。
提供者:
return new Promise(resolve => {
this.http.post(this.apiUrl)
.subscribe(res => {
resolve(res);
},
(err: HttpErrorResponse) => {
if (err.error instanceof Error) {
this.error = {"text":"App error occured."};
console.log('Client-side error occured.');
} else {
this.error = {"text":"Cloud server error occured."};
console.log('Cloud server error occured:'+err);
}
return this.error;
});
});
}
HTML:
<ion-item>
<ion-label stacked>Make</ion-label>
{{vesselData?.make}}
</ion-item>
功能:
vesselData = {"make":""};
updateVesselInfo() {
const data = JSON.parse(localStorage.getItem('userData'));
this.vesselProvider.getVesselData(data.userData.sim).then(vData => {
this.vesselData = vData;
}).catch(console.log.bind(console));
}, (err) => {
console.log("Vessel: ".err);
});
如果我在 .then() 中记录从提供程序返回的数据,则表明提供程序返回了正确的数据。但是,它不会更新任何vesselData 变量。知道我哪里出错了吗?
【问题讨论】:
-
嘿,您在 Ionic 3 中使用的是哪个版本的 Angular?
-
离子(离子 CLI):4.9.0(/usr/local/lib/node_modules/ionic)离子框架:离子角 3.9.2
-
所以 CLI 和 ioni-angular 包不是您使用的 Angular 版本。请检查您的 package.json 并命名以下行:“@angular/core”:“???”
-
@angular/core": "5.2.11
-
很酷,然后查看我的评论并提供 stackblitz。这应该工作