Po prostu zaczynam od Vue.js i oto, co robię: renderuję listę produktów, a każdy produkt ma nazwę, płeć i rozmiar. Chciałbym, aby użytkownicy mogli filtrować produkty według płci, używając danych wejściowych do wpisania płci.Lista filtrów z Vue.js
var vm = new Vue({
el: '#product_index',
data: {
gender: "",
products: [{name: "jean1", gender: "women", size: "S"}, {name: "jean2", gender: "men", size: "S"}]
},
methods:{
updateGender: function(event){
this.gender = $(event.target).val()
}
}
}
)
<div v-for="product in products" v-if="...">
<p>{{product.name}}<p>
</div>
<input v-on:change="updateGender">
Udało mi się zaktualizować płeć, ale mam problem z częścią filtrującą. Po załadowaniu strony nie chcę żadnego filtrowania. W dokumentacji radzą używać v-if
, ale nie wydaje się to zgodne z tą konfiguracją.
Jeśli używam v-if
mogłem zrobić:
v-if="product.gender == gender"
Ale znowu, to nie działa, gdy strona załadowała ponieważ płeć jest pusty. Nie można znaleźć obejścia tego problemu.
Jak powinienem podchodzić do tego problemu?
To jest właściwa droga. Zobacz także oficjalne dokumenty http://vuejs.org/v2/guide/migration.html#Replacing-the-filterBy-Filter – Leo