首页 > 代码库 > vuejs的动态过滤
vuejs的动态过滤
想要通过vuejs动态过滤(这里动态指得是过滤的条件是动态变化的),
一直没找到好办法,
最蠢的办法当然是两个两个数组,一个作为原始副本数组 一个作为视图数组,这样当过滤条件变化的时候
动态拷贝原始数组过滤后的结果 到视图数组,这样就能够使得vuejs感知 我们的视图数组变化,然后来更新视图
这种办法很蠢,而且拷贝很浪费时间,下面上代码
<html> <head> <script src="http://cdn.bootcss.com/vue/2.1.4/vue.js"></script> </head> <body> <div id="app"> <!--<li v-for="n in even(persons)">{{ n.name }}</li>--> <li v-for="n in personsView">{{ n.name }} :: {{n.age}}</li> <input type="text" v-model="age" placeholder="age" /> </div> </body> <script type="text/javascript"> var app = new Vue({ el: ‘#app‘, data: { age:0, persons :[{ name: ‘张三‘, age: 30 }, { name: ‘李四‘, age: 40 }, { name: ‘王五‘, age: 10 }], personsView:[{ name: ‘张三‘, age: 30 }, { name: ‘李四‘, age: 40 }, { name: ‘王五‘, age: 10 }] }, methods: { even: function(persons) { return persons.filter(function(p) { return p.age >= 10; }) } }, watch:{ age:function(val,oldVal){ console.log(‘new: %s, old: %s‘, val, oldVal); console.log(this.persons.filter(function(p) { return p.age >= val; }).slice()); this.personsView = this.persons.filter(function(p){ return p.age >= val; }).slice(); } } }); </script> </html>
谁有更好的实现办法 一定要告诉我
vuejs的动态过滤
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。