2017-02-23 157 views
0

У меня есть служба провайдера, которая вызывает запросы от моего API. Затем у меня есть страница с листингом, в которой вы можете прокручивать множество рецептов. То, с чем я борюсь, - это взять идентификатор каждого рецепта и передать его на страницу с подробными сведениями, поскольку это должно быть включено внутри.Ионный 2 - Идентификатор передачи от json к ребенку (подробности) страница

Мой запрос на обслуживание для листинга является

loadCategory1() { 
    var url = "http://api.yummly.com/v1/api/recipes?_app_id=////&_app_key=////"; 

    if (this.Category1) { 
    return Promise.resolve(this.Category1); 
    } 

    return new Promise(resolve => { 
    this.http.get(url + "&allowedAllergy[]=396^Dairy-Free&allowedAllergy[]=393^Gluten-Free&maxResult=50&start=10") 
     .map(res => res.json()) 
     .subscribe(data => { 
     console.log(data); 
     this.Category1 = data.matches; 
     resolve(this.Category1); 
     }); 
    }); 
} 

, и я в настоящее время есть отдельный один для моих деталей, а также

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

    return new Promise(resolve => { 
    this.http.get('http://api.yummly.com/v1/api/recipe/French-Onion-Soup-The-Pioneer-Woman-Cooks-_-Ree-Drummond-41364?_app_id=//////&_app_key=//////') 
     .map(res => res.json()) 
     .subscribe(data => { 
     console.log(data); 
     this.details = data; 
     resolve(this.details); 
     }); 
    }); 
} 

Как вы можете видеть в деталях просить я имею французский -Onion-Soup-The-Pioneer-Woman-Cooks -_- Ree-Drummond-41364 Это должно быть динамическим, принимая идентификатор из каждого рецепта. Пример ниже.

enter image description here

Внутри каждого .ts файл У меня есть следующие

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

Это позволяет мне вызвать запрос.

Я сейчас нахожусь в точке, где я понятия не имею, что делать, чтобы какая-то помощь была бы замечательной.

+0

u должен иметь глобальный файл variable.ts в структуре вашего проекта! – devanshsadhotra

+0

проблема заключается в том, что вы подписываете два раза в файле apiAuthentication.ts, а также в каждом файле .ts пытаетесь подписаться только в каждом файле .ts –

ответ

0

Ваш DetailsService может быть что-то вроде этого:

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

Перейдите к DetailsPage с аргументами:

this.navCtrl.push(DetailsPage,{ 
      recipe: recipe 
      }); 

И вы можете вызвать DetailsService внутри DetailsPage с помощью кода, как это:

loadDetails(){ 
    this.apiAuthentication.loadDetails(this.recipe.id) 
    .then(data => { 
     this.details = data; 
    }); 
    }