【发布时间】:2016-07-26 22:38:40
【问题描述】:
https://jsfiddle.net/72tnpa0o/
<div id="filter-by-example">
<label>Cool</label><input type="checkbox" v-model="cool">
<label>notCool</label><input type="checkbox" v-model="notCool">
<ul>
<li v-for="user in users | filterBy cool in 'cool' | filterBy notCool in 'notCool'">
{{ user.name }}
</li>
</ul>
</div>`
new Vue({
el: '#filter-by-example',
data: {
name: '',
users: [
{
name: 'Bruce',
cool: true,
notCool: false
},
{
name: 'Chuck',
cool: false,
notCool: true
},
{
name: 'Jackie',
cool: true,
notCool: false
}
]
}
})
我在上面的小提琴链接上有一个例子。我可以通过输入复选框进行排序,但取消选中过滤器不会重置为原始结果。
有谁知道取消选中过滤器按钮后如何渲染整个数组?
【问题讨论】:
-
试试 ALfredo EM 的答案。它完美地工作。 jsfiddle.net/72tnpa0o/4
-
Alfredo 解决方案的问题在于它忽略了您的代码有错误的事实。
cool和notCool应该在组件中预先定义。在浏览器中打开控制台并更改复选框:您会看到 Vue 警告像疯了一样触发。
标签: javascript arrays vue.js