У меня есть список клубов, использующих цикл v-for, а также выпадающий список. Это работает хорошо, за исключением того, что параметры в этом теге выбора повторяются. Чтобы удалить их, я использую вычисляемое свойство. Однако, когда я добавляю вычисляемое свойство в мой отфильтрованный список или в мой js-файл, содержимое больше не отображается. Этот код изначально взят из учебника, но почему-то у меня не работает, когда я реализую вычисляемое свойство. Любая помощь приветствуется.
const clubs = [
{
name: 'Tigers',
location: 'Manchester',
members: '22',
registered: 'No',
pitch: 'Grass'
},
{
name: 'Dolphins',
location: 'Miami',
members: '19',
registered: 'Yes',
pitch: 'Grass'
},
{
name: 'Bleu Sox',
location: 'Paris',
members: '13',
registered: 'Yes',
pitch: 'Astroturf'
}
];
const app = new Vue({
el: '#app',
data: {
club: 'clubs',
pitch: ''
},
methods: {
toggleDetails: function(club) {
this.$set(club, 'showDetails', !club.showDetails)
},
filterList: function(event) {
this.pitch = event.target.value;
},
computed: {
// REMOVES DUPLICATION
uniqueItemsList: function() {
const types = [];
this.club.forEach((club)=> {
if(!types.includes(club.pitch)){
types.push(club.pitch);
}
});
return types;
}
}
}
});
Мой HTML выглядит следующим образом:
<div id="app">
<select v-on:change="filterList">
<option>Select a surface</option>
<option v-for="club in uniqueItemsList()">{{club.pitch}}</option>
</select>
<ul>
<li v-show="pitch === club.pitch" v-for="club in clubs" v-on:click="toggleDetails(club)">
<h1>{{club.name}}</h1>
<div v-show="club.showDetails">
<p>{{club.location}}</p>
<p>{{club.members}}</p>
</div>
</li>
</ul>
</div>