利用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 相关文章推荐
javascript Excel操作知识点
Apr 24 Javascript
学习ExtJS(一) 之基础前提
Oct 07 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
Feb 06 Javascript
js document.write()使用介绍
Feb 21 Javascript
PHP实现的各种中文编码转换类分享
Jan 23 Javascript
jQuery手机拨号界面特效代码分享
Aug 27 Javascript
超实用的JavaScript代码段 附使用方法
May 22 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
Jul 09 Javascript
解析Vue.js中的组件
Feb 02 Javascript
使用use注册Vue全局组件和全局指令的方法
Mar 08 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
Sep 07 Javascript
jQuery实现小火箭返回顶部特效
Feb 03 jQuery
微信小程序的动画效果详解
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
PHP 和 HTML
2006/10/09 PHP
php的计数器程序
2006/10/09 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
PHP实现多图片上传类实例
2014/07/26 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
javascript textContent与innerText的异同分析
2010/10/22 Javascript
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
vue写h5页面的方法总结
2019/02/12 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
Node.js操作MongoDB数据库实例分析
2020/01/19 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
如何将Node.js中的回调转换为Promise
2020/11/10 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
Python中super函数的用法
2017/11/17 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
Python基础之文件读取的讲解
2019/02/16 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
解决python运行启动报错问题
2020/06/01 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
销售助理岗位职责
2014/02/21 职场文书
基层党建工作宣传标语
2014/06/24 职场文书
教师工作态度自我评价
2015/03/05 职场文书
文艺节目主持词
2015/07/06 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
CSS预处理框架——Stylus
2021/04/21 HTML / CSS