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 相关文章推荐
FireFox中textNode分片的问题
Apr 10 Javascript
JS 面向对象的5钟写法
Jul 31 Javascript
关于this和self的使用说明
Aug 01 Javascript
全面理解面向对象的 JavaScript(来自ibm)
Nov 10 Javascript
javascript实现二级级联菜单的简单制作
Nov 19 Javascript
分析js闭包引起的事件注册问题
Mar 29 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
Oct 10 Javascript
原生js实现放大镜效果
Jan 11 Javascript
JS立即执行函数功能与用法分析
Jan 15 Javascript
Vue 动态组件与 v-once 指令的实现
Feb 12 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
Jun 10 Javascript
vue 实现把路由单独分离出来
Aug 13 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
php根据日期显示所在星座的方法
2015/07/13 PHP
PHP递归创建多级目录
2015/11/05 PHP
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
JS 字符串连接[性能比较]
2009/05/10 Javascript
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
js日期联动示例
2014/05/02 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
Python的Django框架使用入门指引
2015/04/15 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
Python unittest单元测试框架总结
2018/09/08 Python
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
python 实现单例模式的5种方法
2020/09/23 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
西班牙伏林航空公司:Vueling
2016/08/05 全球购物
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
传媒专业推荐信范文
2013/11/23 职场文书
如何客观的进行自我评价
2013/12/17 职场文书
企业文化标语大全
2014/06/10 职场文书
2014年班级工作总结
2014/11/14 职场文书
酒店收银员岗位职责
2015/04/07 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书
Python实现机器学习算法的分类
2021/06/03 Python
详解Python中的for循环
2022/04/30 Python