Я недавно сделал поиск моего приложения построено в ионном, который тянет из API с помощью метода HTTP GET, как показано нижеПродлить HTTP Get Url по щелчку (Ionic 2 + Угловая 2)
static get parameters() {
return [[Http]];
}
searchRecipes(id) {
var url = 'http://api.yummly.com/v1/api/recipes?_app_id=/////&_app_key=//////&q=' + encodeURI(id);
var response = this.http.get(url).map(res => res.json());
return response;
}
До сих пор У меня есть id
, в который они входят. Я теперь хочу добавить фильтры в мой поиск (ингредиенты, кухня и аллергии), это делается путем расширения URL-адреса далее с помощью специальных вызовов, таких как &allowedAllergy[]
и allowedDiet[]
.
В настоящее время у меня есть список реализованных элементов, каждый из которых имеет значение, установленное для них, и при щелчке по нему он добавит к указанному url. Реализация такой же, как http://www.yummly.uk/
<div class="diets">
<ul>
<li>Lacto vegetarian</li>
<li>Ovo vegetarian</li>
<li>PaleoPescetarian</li>
<li>Vegan</li>
<li>Vegetarian</li>
</ul>
</div>
<div class="allergies">
<ul>
<li>Dairy-Free</li>
<li>Egg-Free</li>
<li>Gluten-Free</li>
<li>Peanut-Free</li>
<li>Seafood-Free</li>
<li>Sesame-Free</li>
<li>Soy-Free</li>
<li>Sulfite-Free</li>
<li>Tree Nut-Free</li>
<li>Wheat-Free</li>
</ul>
</div>
Метод поиска
рецепты: любой;
searchRecipeDB(event, key) {
if(event.target.value.length > 2) {
this.apiAuthentication.searchRecipes(event.target.value).subscribe(
data => {
this.recipes = data.matches;
console.log(data);
},
err => {
console.log(err);
},
() => console.log('Recipe Search Complete')
);
}
}
Если кто-нибудь может дать совет о том, как реализовать это, это будет спасатель жизни! Спасибо всем
Также, если у вас есть вопрос, как это работает, спросите меня завтра. –
Эй, большое вам спасибо за это! То, как это работает, здорово, и я по большей части получаю то, что происходит. Тем не менее (вы стреляете, ненавидите меня). Теперь у меня есть поиск и отфильтрованный поиск, работающий отдельно, так как это может увидеть код ** метода поиска ** в вопросе. Я попытался изменить его с 'this.apiAuthentication.searchRecipes' на' this.searchRecipes', но он выдает сообщение об ошибке ** Поставляемые параметры не соответствуют сигнатурному вызову цели **. По сути, идентификатор вместо того, чтобы быть числом, должен быть значением, написанным пользователем в поиске. – BA1995