利用Vue.js实现checkbox的全选反选效果
前言
这篇文章主要是跟大家分享了利用Vue.js实现checkbox的全选反选效果,之前写的代码存在一个bug,就是当你选择全选的时候去掉后面的一个选项,再点全选结果就是反的了。后来很感谢朋友留言帮我改了这个问题嘻嘻,下面一起来看看具体是怎么实现的吧.
html示例代码
<template> <div> <inputtype='checkbox'class='input-checkbox'v-model='checked'v-on:click='checkedAll'>全选 <templatev-for='checkbincheckboxData'> <inputtype='checkbox'name='checkboxinput'class='input-checkbox'v-model='checkboxModel'value='{{checkb.id}}'>{{checkb.value}} </template> </div> </template>
js示例代码
<script> exportdefault{ methods:{ checkedAll:function(){ var_this=this; console.log(_this.checkboxModel); if(this.checked){//实现反选 _this.checkboxModel=[]; }else{//实现全选 _this.checkboxModel=[]; _this.checkboxData.forEach(function(item){ _this.checkboxModel.push(item.id); }); } } }, watch:{//深度watcher 'checkboxModel':{ handler:function(val,oldVal){ if(this.checkboxModel.length===this.checkboxData.length){ this.checked=true; }else{ this.checked=false; } }, deep:true } }, data(){ return{ checkboxData:[{ id:'1', value:'苹果' },{ id:'2', value:'荔枝' },{ id:'3', value:'香蕉' },{ id:'4', value:'火龙果' }], checkboxModel:['1','3','4'], checked:"" } } } </script>
watch
类型:Object
详细:
一个对象,键是观察表达式,值是对应回调。值也可以是方法名,或者是对象,包含选项。在实例化时为每个键调用$watch()。
示例:
varvm=newVue({ data:{ a:1 }, watch:{ 'a':function(val,oldVal){ console.log('new:%s,old:%s',val,oldVal) }, //方法名 'b':'someMethod', //深度watcher 'c':{ handler:function(val,oldVal){/*...*/}, deep:true } } }) vm.a=2//->new:2,old:1
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。