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 相关文章推荐
js 自定义的联动下拉框
Feb 07 Javascript
js淡入淡出的图片轮播效果代码分享
Aug 24 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
Feb 17 Javascript
javascript中获取class的简单实现
Jul 12 Javascript
JS字符串false转boolean的方法(推荐)
Mar 08 Javascript
Vue框架之goods组件开发详解
Jan 25 Javascript
element-ui中select组件绑定值改变,触发change事件方法
Aug 24 Javascript
layui 富文本编辑器和textarea值的相互传递方法
Sep 18 Javascript
vue v-for直接循环数字实例
Nov 07 Javascript
小程序Scroll-view上拉滚动刷新数据
Jun 21 Javascript
vue+AI智能机器人回复功能实现
Jul 16 Javascript
Vue.js使用axios动态获取response里的data数据操作
Sep 08 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 DOS攻击实现代码(附如何防范)
2012/05/29 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
javascript 动态生成私有变量访问器
2009/12/06 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
深入分析JSONP跨域的原理
2014/12/10 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
javascript冒泡排序小结
2016/04/10 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
Node.js中用D3.js的方法示例
2017/01/16 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
python中的对象拷贝示例 python引用传递
2014/01/23 Python
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
Python实现豆瓣图片下载的方法
2015/05/25 Python
python如何重载模块实例解析
2018/01/25 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
网游商务专员求职信
2013/10/15 职场文书
安全大检查反思材料
2014/01/31 职场文书
结婚老公保证书
2015/02/26 职场文书
绿色环保倡议书
2015/04/28 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
高中运动会广播稿
2015/08/19 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
JavaScript前端面试扁平数据转tree与tree数据扁平化
2022/06/14 Javascript