订阅后如何在 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 的更改检测,然后数据将出现。