Я пытаюсь взять массив из вычисляемого свойства и добавить его в свойство данных в моем приложении Vue. Причина, по которой я это делаю, - метод, который я вызываю, мне нужна длина массива в этом вычисляемом свойстве. Итак, что у меня есть:
var app = new Vue({
el: '#app',
data() {
return {
//assigning the jobs JSON data to this variable
jobs: jsonData,
jobsFiltered: //this is where the computed property variable should go.
locations: ['Chicago', 'Philly', 'Baltimore'],
//Used to filter based on selected filter options
selectedLocation: '',
page: 1,
perPage: 10,
pages: [],
}
},
methods: {
setPages () {
this.pages = [];
let numberOfPages = Math.ceil(this.jobs.length / this.perPage);
for (let i = 1; i <= numberOfPages; i++) {
this.pages.push(i);
}
},
paginate (jobs) {
let page = this.page;
let perPage = this.perPage;
let from = (page * perPage) - perPage;
let to = (page * perPage);
return jobs.slice(from, to);
},
},
computed: {
filteredJobs: function(){
var filteredList = this.jobs.filter(el=> {
return el.customText12.toUpperCase().match(this.selectedLocation.toUpperCase())
});
return this.paginate(filteredList);
}
}
})
Так что мне нужно, чтобы мне нужно было установить переменную данных jobsFiltered для переменной в вычисляемых свойства FilterList. Причина, по которой мне это нужно, заключается в добавлении длины массива FilterList к переменной numberOfPages в методе setPages:
let numberOfPages = Math.ceil(this.jobs.length / this.perPage);
Так что там, где написано this.jobs.length, мне нужно вместо этого получить длину массива FilterList, и я не уверен, как это сделать, когда массив, который я пытаюсь получить, является вычисляемым свойством.
РЕДАКТИРОВАТЬ: Для большей ясности, я запускаю метод paginate для переменной FilterList в функции FilterJobs в вычисляемых свойствах. Итак, что он делает, так это запускает метод slice для этой переменной FilterList и дает мне только 10 элементов массива за раз. Поэтому, когда я делаю this.filteredJobs.length
, он видит, что длина равна 10, и я не получаю полную длину. Когда мне действительно нужна длина массива до того, как на нем будет запущен метод слайса.