我正在从Ionic 3升级到4,并不断遇到我的API服务问题。在这种特殊情况下,我试图检索用户的票证,以便我可以列出它们。
不幸的是,即使每次从API成功获取票证,每次执行此操作都会收到“ whoops”错误消息。最重要的是,我似乎无法弄清楚如何将服务返回的票证成功地放入我的页面。我目前遇到一个Cannot read property 'then' of undefined
错误。
最重要的是,data
现在又回到了data: [object Object],[object Object]
getSubmittedTickets() {
let body = new FormData();
body.append('username', this.username);
body.append('password', this.password);
this.http
.post(this.apiService.url, body)
.subscribe((data: any) => {
console.log('data: ' + data);
return data;
}, error => {
console.log('whoops');
});
}
ngOnInit() {
this.getSubmittedTickets();
}
getSubmittedTickets() {
this.ticketService.getSubmittedTickets()
.then(data => {
this.tickets = data;
console.log('tickets: '+this.tickets);
});
}
答案 0 :(得分:0)
您服务中的方法名称为getTickets()
。但是在您的TS文件中,您使用了getSubmittedTickets()
。
TS文件中的代码应为:
getSubmittedTickets() {
this.ticketService.getTickets()
.then(data => {
this.tickets = data;
console.log('tickets: '+this.tickets);
});
}
答案 1 :(得分:0)
您需要使用toPromise将observable
转换为promise
getSubmittedTickets() {
let body = new FormData();
body.append('username', this.username);
body.append('password', this.password);
return this.http
.post(this.apiService.url, body)
.toPromise()
}
答案 2 :(得分:0)
该服务应返回一个Observable
getSubmittedTickets() {
let body = new FormData();
body.append('username', this.username);
body.append('password', this.password);
return this.http.post(this.apiService.url, body);
}
,组件从服务中调用方法,然后订阅返回的值
getSubmittedTickets() {
this.ticketService.getSubmittedTickets()
.subscribe(data => {
this.tickets = data;
console.log('tickets: '+this.tickets);
});
}