我正在尝试从服务器获取数据,然后在Ionic页面中显示,到目前为止,我可以毫无问题地获取数据并检入控制台。 但是,服务器如何为我返回它?
所以我在提供者中有这个功能
public LoadArticle(article_id:any){
let headers = new Headers();
let postData:any;
postData = {
task: 'GetArticle',
article_id: article_id
}
headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
return this.http.post(this.apiUrl, JSON.stringify(postData),{ headers: headers });
}
我在想要显示的页面上调用它
constructor(
public navCtrl: NavController,
public controller: WebservicesProvider
) {
}
this.controller.LoadArticle(1).subscribe(
data => {
let retorno: any;
retorno = data;
console.log(JSON.parse(retorno._body));
// this.navCtrl.setRoot(AbasPage);
// this.article_array = retorno._body.dados;
this.articlearray.id = retorno._body.dados.id;
this.articleLoaded = true;
},
error => {
console.log(error)
this.controller.endLoading();
},
() => {
this.controller.endLoading();
}
);
如果我在页面html文件中写{{articlearray.id}},我收到了错误
Cannot read property 'id' of undefined
我做错了什么?
答案 0 :(得分:1)
如果我在页面html文件中写{{articlearray.id}},我收到了错误
您可以使用安全导航操作符:
{{articlearray?.id}}
这将防止该错误,然后在检索数据后立即显示。
首次显示模板时,尚未检索到数据,这就是您看到错误的原因。在稍后检索数据的时间点,将通知Angular的变化检测,然后会出现数据。