订阅后如何在 Ionic 中填充 angular 变量?
How do i fill a angular variable in Ionic after a subscribe?
我正在尝试从服务器获取数据然后显示在 Ionic 页面中,到目前为止我可以毫无问题地获取数据并在控制台中签入。
但是在服务器 returns 之后如何为我呢?
所以我在供应商中有这个功能
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
我做错了什么?
If i write {{articlearray.id}} in the page html file i got an error
您可以使用安全导航运算符:
{{articlearray?.id}}
这将防止该错误,然后在检索到数据后立即显示数据。
首次显示模板时,尚未检索数据,这就是您看到错误的原因。在稍后的某个时间点检索数据时,将通知 Angular 的更改检测,然后数据将出现。
我正在尝试从服务器获取数据然后显示在 Ionic 页面中,到目前为止我可以毫无问题地获取数据并在控制台中签入。 但是在服务器 returns 之后如何为我呢?
所以我在供应商中有这个功能
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
我做错了什么?
If i write {{articlearray.id}} in the page html file i got an error
您可以使用安全导航运算符:
{{articlearray?.id}}
这将防止该错误,然后在检索到数据后立即显示数据。
首次显示模板时,尚未检索数据,这就是您看到错误的原因。在稍后的某个时间点检索数据时,将通知 Angular 的更改检测,然后数据将出现。