我们正在推出一个活动应用程序,用户可以搜索即将到来的音乐节。我们还希望过滤的搜索结果按时间顺序显示为“startDate”。
我们的活动卡片:
<v-card flat class="pa-2 mb-3 eventcard" v-for="event in filteredEvents" :key="event.id"></v-card>
然后我们的计算属性:
filteredEvents: function(){
return this.$store.getters.loadedEvents.filter((event) => {
return event.title.toLowerCase().match(this.search.toLowerCase())
})
}
最后,一个事件开始日期的例子:
startDate:"2018-04-13"
根据文档,我尝试添加“_.orderBy(this.event,'startDate')”但我只是收到错误this.search.toLowerCase(...).orderBy is not a function
有什么想法吗?谢谢!
答案 0 :(得分:2)
使用.sort
export default {
filteredEvents: function() {
return this.$store.getters.loadedEvents
.filter(event => {
return event.title.toLowerCase().match(this.search.toLowerCase());
})
.sort(function(a, b) {
// Turn your strings into dates, and then subtract them
// to get a value that is either negative, positive, or zero.
return new Date(b.startDate) - new Date(a.startDate);
});
}
};
来自https://stackoverflow.com/a/10124053/5599288 的方法