将API数据从一个页面传递到另一个页面(Ionic 2 + Angular 2)

时间:2017-02-17 14:41:56

标签: http angular typescript ionic-framework ionic2

我目前正在构建一个食谱应用程序,我有一个从API中提取的食谱列表。为此,我做了一个http get请求,如下所示。我想从JSON中提取{{id}}并将其放在(id)所在的网址中。

loadDetails(id) {
  if (this.details) {
    return Promise.resolve(this.details);
  }

  return new Promise(resolve => {
    this.http.get('http://api.yummly.com/v1/api/recipe/' + (id) + '?_app_id=397aed16&_app_key=69e2565adcec7a6609b18bef31261e62')
      .map(res => res.json())
      .subscribe(data => {
        console.log(data);
        this.details = data;
        resolve(this.details);
      });
  });
}

通过这样做,我在控制台中收到此错误(id)未定义

enter image description here

我正在尝试加载配方的.ts文件如下所示

  id: any;

  loadRecipes(){
    this.apiAuthentication.loadDetails(this.id)
    .then(data => {
      this.api = data;
    });
  } 

任何帮助都会很棒

1 个答案:

答案 0 :(得分:0)

从代码中可能看来id未初始化为什么它会以undefined的形式出现。正确地初始化它然后你就能得到结果。

e.g。

loadRecipes(){
    this.id = 'someValue';
    this.apiAuthentication.loadDetails(this.id)
    .then(data => {
      this.api = data;
    });
  }