bootstrap select插件封装成Vue2.0组件


Posted in Javascript onApril 17, 2017

因为bootstrap-select功能比较强大,而且样式还不错,所以在项目使用了vue,所以,觉得对bootstrap-select进行封装。

html

<my-select :options="input.options" v-model="input.value" ref="typeSelect" :index="index" :childidx="childIdx" :load="load" :multiple="input.multiple" :method="change"></my-select>

js

// select 插件
Vue.component('vm-select', {
 props : ['options', 'value', 'multiple', 'method', 'load', 'index', 'childidx'],
 template : "<select :multiple='multiple' class='selectpicker' data-live-search='true' title='请选择' data-live-search-placeholder='搜索'><option :value='option.value' v-for='option in options'>{{ option.label }}</option></select>",
 mounted : function () {
 var vm = this;
 $(this.$el).selectpicker('val', this.value != null ? this.value : null);
 $(this.$el).on('changed.bs.select', function () {
 vm.$emit('input', $(this).val());
 if (typeof(vm.method) != 'undefined') {
 vm.method(vm.index, vm.childidx, this.value);
 }
 });
 $(this.$el).on('show.bs.select', function () {
 if (typeof(vm.load) != 'undefined') {
 vm.load(vm.index, vm.childidx);
 }
 });
 },
 updated : function () {
 $(this.$el).selectpicker('refresh');
 },
 destroyed : function () {
 $(this.$el).selectpicker('destroy');
 }
});

不得不提一下,在使用多个select的时候,在删除某一个selcet对象的时候,加载的值会发生改变,纠结了半天发现是vue自身的问题:因为vue对象有在重新渲染html的过程中会复用原来相同的vue对象,所以导致会导致selcet对象错位。解决方案:将每个select对象打上一个标签key。虽然可能导致性能的下降,但是不会导致错误。

bootstrap select插件封装成Vue2.0组件

vue官网

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Ajax,UTF-8还是GB2312 eval 还是execScript
Nov 13 Javascript
jQuery $.data()方法使用注意细节
Dec 31 Javascript
遍历json获得数据的几种方法小结
Jan 21 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
Mar 09 Javascript
详解angular中的作用域及继承
May 31 Javascript
Angularjs上传文件组件flowjs功能
Aug 07 Javascript
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 jQuery
快速解决vue-cli不能初始化webpack模板的问题
Mar 20 Javascript
详解Vue CLI 3.0脚手架如何mock数据
Nov 23 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
Jul 20 Javascript
Postman参数化实现过程及原理解析
Aug 13 Javascript
Vue的Options用法说明
Aug 14 Javascript
JS简单获取当前日期和农历日期的方法
Apr 17 #Javascript
Vue.js仿Metronic高级表格(一)静态设计
Apr 17 #Javascript
react.js CMS 删除功能的实现方法
Apr 17 #Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
Apr 17 #Javascript
简单的JS控制button颜色随点击更改的实现方法
Apr 17 #Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
Apr 17 #jQuery
Vue分页组件实例代码
Apr 17 #Javascript
You might like
一个用于MySQL的PHP XML类
2006/10/09 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
javascript实现跳转菜单的具体方法
2013/07/05 Javascript
JavaScript中标识符提升问题
2015/06/11 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
第十篇BootStrap轮播插件使用详解
2016/06/21 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
Vue项目安装插件并保存
2019/01/28 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
原生js生成图片验证码
2020/10/11 Javascript
es5 类与es6中class的区别小结
2020/11/09 Javascript
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
python简单程序读取串口信息的方法
2015/03/13 Python
python中的装饰器详解
2015/04/13 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
浅谈Python 多进程默认不能共享全局变量的问题
2019/01/11 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
师范毕业生求职自荐信
2013/09/25 职场文书
会计专业毕业生自我鉴定
2013/10/29 职场文书
汽车队司机先进事迹材料
2014/02/01 职场文书
经典团队口号
2014/06/06 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
食品药品安全责任书
2015/05/11 职场文书
2015年暑假生活总结
2015/07/13 职场文书
药房管理制度范本
2015/08/06 职场文书