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 相关文章推荐
javascript 动态修改样式和层叠样式表代码
Apr 27 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
Jul 21 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
Aug 06 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
Dec 01 Javascript
实用jquery操作表单元素的简单代码
Jul 04 Javascript
jquery tmpl模板(实例讲解)
Sep 02 jQuery
vue项目中引入noVNC远程桌面的方法
Mar 05 Javascript
微信小程序实现的一键复制功能示例
Apr 24 Javascript
详解VSCode配置启动Vue项目
May 14 Javascript
node.js中npm包管理工具用法分析
Feb 14 Javascript
Vue axios 跨域请求无法带上cookie的解决
Sep 08 Javascript
原生小程序封装跑马灯效果
Oct 21 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
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
jQuery 使用手册(三)
2009/09/23 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
js的alert弹出框出现乱码解决方案
2013/09/02 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
JavaScript正则表达式实例详解
2016/10/16 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
阿里大于短信验证码node koa2的实现代码(最新)
2017/09/07 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
Vue是怎么渲染template内的标签内容的
2020/06/05 Javascript
Python切片用法实例教程
2014/09/08 Python
Python 通过URL打开图片实例详解
2017/06/01 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
python flask框架实现重定向功能示例
2019/07/02 Python
Python 获取指定文件夹下的目录和文件的实现
2019/08/30 Python
python 实现字符串下标的输出功能
2020/02/13 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
Python连接mysql方法及常用参数
2020/09/01 Python
查环查孕证明
2014/01/10 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
中式婚礼主持词
2014/03/13 职场文书
活动总结怎么写啊
2014/05/07 职场文书
合作协议书格式
2014/08/19 职场文书
公司2015年终工作总结
2015/05/26 职场文书
孝女彩金观后感
2015/06/10 职场文书
2015元旦感言
2015/12/09 职场文书
Python实现单例模式的5种方法
2021/06/15 Python