Da in Vue 2.0 Sie nicht mehr mehrere Pipeline-Filter zu einer Liste (|filterBy
usw.) zusammenketten können, wie sollen Sie dies in einer berechneten Eigenschaft tun, wenn Sie haben zwei oder mehr Dropdown-Menüs auswählen?Filterliste nach zwei oder mehr wählt in Vue.js 2.0
Ich möchte die Möglichkeit, nach Albumtitel (von Auswahl 1) und nach Jahr (wählen Sie 2).
<select v-model="albumFilter">
<option value="All">All</option>
<option value="Album 1">Album 1</option>
<option value="Album 2">Album 2</option>
<option value="Album 3">Album 3</option>
</select>
<select v-model="yearFilter">
<option value="Year">Year</option>
<option value="2017">2017</option>
<option value="2016">2016</option>
<option value="2015">2015</option>
</select>
<ul>
<li v-for="review in filterByAlbum" v-if="review.type === 'recordReview'">
<a :href="review.jsonUrl">
[[ review.title ]]
</a>
</li>
</ul>
Vue js Code:
data() {
return {
pressEntries: [],
albumFilter: 'All',
yearFilter: 'Year'
}
},
filterByAlbum: function() {
// Select 1 (Album Filter)
switch (this.albumFilter) {
case 'All':
return this.pressEntries;
break;
case 'Neither':
return this.pressEntries.filter(entry => {
return entry.relatedRecording === null
});
break;
default:
return this.pressEntries.filter(entry => {
return entry.relatedRecording === this.albumFilter
});
}
// Select 2 (Year Filter)
if (this.yearFilter === 'Year') {
return this.pressEntries;
}
else {
return this.pressEntries.filter(entry => {
let postDate = new Date(entry.postDate.date);
return JSON.stringify(postDate.getFullYear()) === this.yearFilter;
});
}
}
Die pressEntries
Datenmodelldaten aus einer API bekommt, die ich nicht die Mühe, den Code auch für. Jeder Codeblock für jeden ausgewählten Filter funktioniert eigenständig, aber nicht zusammen.
Wenn die filterByAlbum
im v-for
Schleife auf die berechnete Eigenschaft bezieht, die dann zurück zu pressEntries
Datenmodell bezieht, wäre es möglich, zwei berechnete Eigenschaften zu haben, dass die v-for
durchläuft (wie „filterByAlbum
“ und „'filterByYear` " beispielsweise)? Oder muss ich herausfinden, wie man alle Ergebnisse in einer massiven berechneten Eigenschaft filtert?
Hallo, wenn ich zeigen Artikel zählen möchten. Wie geht das ? Danke –
@KemBardly Meinst du, du möchtest die Gegenstände zählen, die aus dem Filter kommen? – Bert
Ja, ich möchte Paginierung bitte helfen –