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 相关文章推荐
jquery 输入框数字限制插件
Nov 10 Javascript
Javascript学习笔记8 用JSON做原型
Jan 11 Javascript
HTML DOM的nodeType值介绍
Mar 31 Javascript
新鲜出炉的js tips提示效果
Apr 03 Javascript
Javascript实现禁止输入中文或英文的例子
Dec 09 Javascript
jQuery循环遍历子节点并获取值的方法
Apr 14 Javascript
Vue.js每天必学之方法与事件处理器
Sep 06 Javascript
Javascript中数组去重与拍平的方法示例
Feb 03 Javascript
AngularJS学习笔记之表单验证功能实例详解
Jul 06 Javascript
JavaScript中各数制转换全面总结
Aug 21 Javascript
微信小程序调用微信支付接口的实现方法
Apr 29 Javascript
vue实现移动端图片上传功能
Dec 23 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
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
php引用返回与取消引用的详解
2013/06/08 PHP
php过滤XSS攻击的函数
2013/11/12 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
2016/09/26 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
jquery如何改变html标签的样式(两种实现方法)
2013/01/16 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
JavaScript插件Tab选项卡效果
2017/11/14 Javascript
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
vue实现Input输入框模糊查询方法
2021/01/29 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
python如何制作缩略图
2019/04/30 Python
Python 切分数组实例解析
2019/11/07 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
法国春天百货官网:Printemps.com
2020/06/29 全球购物
机械制造专业大学生自我鉴定
2014/09/19 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
诚信考试主题班会
2015/08/17 职场文书
2015新员工工作总结范文
2015/10/15 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang