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 XML数据显示为HTML一例
Dec 23 Javascript
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
Jan 06 Javascript
jqeury eval将字符串转换json的方法
Jan 20 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
Apr 11 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
Aug 29 Javascript
AngularJs IE Compatibility 兼容老版本IE
Sep 01 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
Feb 15 Javascript
Node.js+Express+MySql实现用户登录注册功能
Jul 10 Javascript
MVVM框架下实现分页功能示例
Jun 14 Javascript
JS造成内存泄漏的几种情况实例分析
Mar 02 Javascript
js实现随机点名器精简版
Jun 29 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
Jul 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实现与ASP Banner组件相似的类
2006/10/09 PHP
PHP比你想象的好得多
2014/11/27 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
JS实现数组去重复值的方法示例
2017/02/18 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
js实现点击生成随机div
2020/01/16 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
2020/08/14 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
python中对list去重的多种方法
2014/09/18 Python
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
python提取具有某种特定字符串的行数据方法
2018/12/11 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
django settings.py 配置文件及介绍
2019/07/15 Python
Python 实现数组相减示例
2019/12/27 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
英国比较机场停车场网站:Airport Parking Essentials
2019/12/01 全球购物
省三好学生申请材料
2014/01/22 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
给领导的检讨书
2014/02/16 职场文书
财会专业毕业生自荐信
2014/07/09 职场文书
2015年检验员工作总结范文
2015/04/30 职场文书
golang中的并发和并行
2021/05/08 Golang
vue router 动态路由清除方式
2022/05/25 Vue.js