Я получаю несколько файлов JSON с сервера. Все они доступны по разным URL-адресам в зависимости от года (2018, 2019 и 2020 годы). Я предварительно заполняю эти годы выпадающим списком, но теперь я хочу запускать вызов get с помощью axios каждый раз, когда меняю значение (? Year = 2018,? Year = 2019 или? Year = 2020). У меня также есть другой выпадающий список, который заполнен идентификаторами, но я не знаю, как прикрепить определенный идентификатор к выбранному году. Эти выпадающие списки действуют как фильтр для таблицы, представленной ниже.
Итак, чтобы быть более понятным, при перезагрузке я запускаю вызов get для текущего года следующим образом: baseurl? Year = 2019, при этом выборе я получаю ВСЕ данные, но затем, если я выбираю ID, этот идентификатор должен быть добавлено в URL, вот так:
BaseUrl? год = 2019? ID = 0
Мой текущий код:
data() {
return {
year:[],
id: 0,
}
},
computed: {
axiosParams(){
const params = new URLSearchParams();
params.append('year', this.year);
return params;
},
//this returns my current year
year() {
var now = new Date()
var nowy = now.getFullYear()
return nowy
},
//this method makes sure that the dropdown is always preffiled
//with following years - eg. next year I only need 2019, 2020 and
//2021
years() {
var yearsArray = []
var now = new Date()
for (let i = -1; i < 2; i++) {
var nowy = now.getFullYear() + i
yearsArray.push(nowy)
}
return yearsArray
},
},
methods: {
getYears: function() {
axios.get('myurl',{
params : this.axiosParams
}
}).then((response) => {
this.year = response.data;
this.table = response.data;
})
},
getId: function() {
axios.get('myurl',{
params : {
year: this.year,
id : this.id
}
}
}).then((response) => {
this.id = response.data;
this.table = response.data;
})
},
},
created: {
this.getYears();
this.getId();
}
Мой HTML:
<select v-model="year">
<option v-model="yearsArray" v-for="year in years">{{year}} .
</option></select>
<select v-model="id"><option v-for="item in id">{{item}}</option> .
</select>
Спасибо!