Я создаю новую переменную из класса.У класса есть один конструктор, city, а затем он выбирает джаз-клубы через API Foursquare.
Когда я жестко кодирую название города в экземпляре класса, он работает нормально.Но когда я хочу передать ему динамическое значение (запрос из строки поиска, которую я получаю через DOM), он не узнает город.Вот код:
Класс:
class Venues {
constructor(city) {
this.id = '...';
this.secret = '...';
this.city = city;
}
async getVenues() {
const response = await fetch(`https://api.foursquare.com/v2/venues/search?near=${this.city}&categoryId=4bf58dd8d48988d1e7931735&client_id=${this.id}&client_secret=${this.secret}&v=20190309`);
const venues = await response.json();
return venues;
}
}
const input = document.getElementById('search-input').value;
const button = document.getElementById('button');
const jazzClubs = new Venues(input);
button.addEventListener('click', (e) => {
e.preventDefault();
getJazzVenues();
})
function getJazzVenues() {
jazzClubs.getVenues()
.then(venues => {
console.log(venues);
})
.catch(err => {
console.log(err);
});
}
Кто-нибудь знает, почему значение переменной input
не распознается недавно созданной переменной jazzClubs?
Также, если у вас есть советы о том, как структурировать этот код лучше или аккуратнее, я буду рад любым предложениям (определение класса уже находится в отдельном файле).
Большое спасибо, ребята!
Адам