利用Vue.js实现checkbox的全选反选效果


Posted in Javascript onJanuary 18, 2017

前言

这篇文章主要是跟大家分享了利用Vue.js实现checkbox的全选反选效果,之前写的代码存在一个bug,就是当你选择全选的时候去掉后面的一个选项,再点全选结果就是反的了。后来很感谢朋友留言帮我改了这个问题嘻嘻,下面一起来看看具体是怎么实现的吧.

html示例代码

<template>
 <div>
 <input type='checkbox' class='input-checkbox' v-model='checked' v-on:click='checkedAll'>全选
 <template v-for='checkb in checkboxData'>
 <input type='checkbox' name='checkboxinput' class='input-checkbox' v-model='checkboxModel' value='{{checkb.id}}'>{{checkb.value}}
 </template>
 </div>
</template>

js示例代码

<script>
export default {
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()

示例:

var vm = new Vue({
 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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
用window.location.href实现刷新另个框架页面
Mar 07 Javascript
JavaScript生成随机数的4种自定义函数分享
Feb 28 Javascript
浅谈javascript中replace()方法
Nov 10 Javascript
简述jQuery ajax的执行顺序
Jan 05 Javascript
js格式化输入框内金额、银行卡号
Feb 01 Javascript
Vue中fragment.js使用方法详解
Mar 09 Javascript
vue实现移动端图片裁剪上传功能
Aug 18 Javascript
浅谈Angular4实现热加载开发旅程
Sep 08 Javascript
JavaScript数组方法的错误使用例子
Sep 13 Javascript
初学node.js中实现删除用户路由
May 27 Javascript
在VUE中实现文件下载并判断状态的方法
Nov 08 Javascript
Vue指令实现OutClick的示例
Nov 16 Javascript
微信小程序的动画效果详解
Jan 18 #Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
Jan 18 #Javascript
bootstrap配合Masonry插件实现瀑布式布局
Jan 18 #Javascript
JavaScript字符串对象(string)基本用法示例
Jan 18 #Javascript
Vue.js自定义指令的用法与实例解析
Jan 18 #Javascript
vue.js+Element实现表格里的增删改查
Jan 18 #Javascript
JS中Array数组学习总结
Jan 18 #Javascript
You might like
全国FM电台频率大全 - 20 广西省
2020/03/11 无线电
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
php创建、获取cookie及基础要点分析
2015/01/26 PHP
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
extjs中grid中嵌入动态combobox的应用
2011/01/01 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
Echarts基本用法_动力节点Java学院整理
2017/08/11 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
跟老齐学Python之dict()的操作方法
2014/09/24 Python
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
python版本单链表实现代码
2018/09/28 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
Mac安装python3的方法步骤
2019/08/09 Python
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
html5视频常用API接口的实战示例
2020/03/20 HTML / CSS
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
工厂厂长岗位职责
2013/11/08 职场文书
高中生家长会演讲稿
2014/01/14 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
简爱电影观后感
2015/06/10 职场文书
如何用JavaScript学习算法复杂度
2021/04/30 Javascript
Go语言空白表示符_的实例用法
2021/07/04 Golang
SQL中的连接查询详解
2022/06/21 SQL Server
Python first-order-model实现让照片动起来
2022/06/25 Python