我是Vue.js的新手。我試圖顯示一個基於另一個對象的值的過濾列表。 select
設置名爲activeSet
的對象的值。該值是sets
對象中的關鍵。如果該鍵值大於0,我想將它顯示在列表中並按它排序。這裏是我的代碼:Vue.js過濾清單
JS
var vm = new Vue({
el: '#app',
data: {
activeSet: 'all',
computed: {
activeContents: songs.filter(function(song) {
return (song[activeSet] > 0);
})
},
songs: {
a: {
title: 'Hound Dog',
all: 0,
set1: 2
},
b: {
title: 'Long Gone',
all: 1,
set1: 0
},
b: {
title: 'Novermber Rain',
all: 2,
set1: 3
}
},
sets: {
all: {
name: 'All Songs'
},
set1: {
name: 'Acoustic'
}
}
}
})
HTML
<div id="app">
<select v-model="activeSet">
<option v-for="(set,key) in sets" :value="key">{{set.name}}</option>
</select>
<ul id="menu">
<li v-for="(song,key) in activeContents" :id="key" :is-active="song.show" :key="key" @click="activeSong=key">{{ song.title }}</li>
</ul>
</div>
旁註:如果該值大於0它需要inclu ded然後按該值排序。我甚至沒有深入分類,但如果可以按大於0的那些值進行排序,則可以按這些獎勵積分排序。
1)計算特性被定義爲2)來計算屬性不會在'data'方法中定義的函數3)你需要引用VUE實例時訪問的數據的性質(例如' this.songs')4)'songs'不是數組,所以它沒有'filter'方法 – thanksd