2017-02-17 40 views
0

我目前正在構建一個食譜應用程序,我有一個從API中提取食譜的列表。爲了這個工作,我做了一個http獲取請求,如下所示。我想從JSON中取出{{id}},並將其放在(id)所在的網址中。將API數據從一個頁面傳遞到另一個頁面(Ionic 2 + Angular 2)

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; 
    }); 
    } 

任何幫助將是巨大的

+0

這也許應該是:'this.http.get( 'http://api.yummly.com/v1/api/recipe/' + ID + '?_app_id = 397aed16&_app_key = 69e2565adcec7a6609b18bef31261e62')和'檢查你是否真的有'ID'的價值:) – Alex

+0

@ AJT_82我已經刪除括號,但仍然未定義 – BA1995

+0

該ID是否有值,你檢查過嗎? – Alex

回答

0

從代碼看起來好像你的id未初始化,這就是爲什麼它的來臨undefined。正確初始化它,然後你將能夠得到結果。

例如

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

感謝你們,我將如何從JSON(API)中抽取一些數據,例如{{recipe.id}} – BA1995

+0

你必須調用另一個方法才能得到我想要的ID。 –

相關問題