У меня проблемы с применением фильтров при использовании флажков в списке результатов, и мне нужна помощь.
В настоящее время только опция «Все», кажется, применяет любую логику фильтрации.
Мой HTML, содержащий мои фильтры и цикл, выглядит следующим образом:
<div class="container" id="clubs">
<div class="filter">
<label><input type="checkbox" v-model="selectedCategory" value="All" /> All</label>
<label><input type="checkbox" v-model="selectedCategory" value="Parking" /> Parking</label>
<label><input type="checkbox" v-model="selectedCategory" value="Toilets" /> Toilets</label>
<label><input type="checkbox" v-model="selectedCategory" value="Floodlights" /> Floodlights</label>
</div>
<ul class="clubs-list">
<li v-for="club in filteredClubs">{{ club.clubName }}</li>
</ul>
</div>
Тогда код внутри моего приложения VueJS выглядит следующим образом:
var vm = new Vue({
el: "#clubs",
data: {
clubs: [
{ clubName: "Club One", clubParking: true, clubToilets: false, clubFloodlights: true },
{ clubName: "Club Two", clubParking: true, clubToilets: false, clubFloodlights: false },
{ clubName: "Club Three", clubParking: false, clubToilets: true, clubFloodlights: true },
],
selectedCategory: "All"
},
computed: {
filteredClubs: function() {
var vm = this;
var category = vm.selectedCategory;
if(category === "All") {
return vm.clubs;
} else {
return vm.clubs.filter(function(club) {
return club.clubParking === category;
});
}
}
}
});
Любая помощь приветствуется, так как я застрял на несколько часов.