【发布时间】:2018-05-04 11:50:25
【问题描述】:
我试图在渲染之前按 filterCriteria 过滤 listItems。
问题是当我使用 Array.prototype.filter 时,我无法将 filterCriteria 传递给 filter 函数。
有什么好的方法可以在不创建新函数的情况下将其传入?
谢谢!
var todoList = new Vue({
el: '#todolist',
data: {
// I want to use filterCriteria in data as filter criteria
filterCriteria: 'Done',
listItems: [
{
content: 'Fishing.',
status: 'Done',
},
{
content: 'Do homework.',
status: 'Ongoing',
}
],
},
methods: {
filterList(listItems) {
return listItems.filter(function(item) {
// Ideally the 'Ongoing' here should be "filterCriteria" in data property
return item.status === 'Ongoing';
});
}
},
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.3/vue.min.js"></script>
<div id="todolist">
<div class="list-filter">
<a href="#">Ongoing</a>
<a href="#">Done</a>
</div>
<div v-for="item in filterList(listItems)" class="list-item">
<span class="list-status">{{item.status}}</span>
<span class="list-content">{{item.content}}</span>
</div>
</div>
【问题讨论】:
标签: javascript filter vue.js arguments