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 相关文章推荐
Bookmarklet实现启动jQuery(模仿 云输入法)
Sep 15 Javascript
jQuery UI AutoComplete 使用说明
Jun 20 Javascript
ASP.NET中AJAX 调用实例代码
May 03 Javascript
jQuery实现带动画效果的二级下拉导航方法
Mar 11 Javascript
5种JavaScript脚本加载的方式
Jan 16 Javascript
angular2模块和共享模块详解
Apr 08 Javascript
Javascript实现购物车功能的详细代码
May 08 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
Mar 31 Javascript
js实现简单的点名器随机色实例代码
Sep 20 Javascript
uni-app使用countdown插件实现倒计时
Nov 01 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
Dec 16 Javascript
JavaScript 数组去重详解
Sep 15 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编程之高级技巧——利用Mysql函数
2006/10/09 PHP
php防注
2007/01/15 PHP
php入门教程 精简版
2009/12/13 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
PHP sdk实现在线打包代码示例
2020/12/09 PHP
复制js对象方法(详解)
2013/07/08 Javascript
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
容易造成JavaScript内存泄露几个方面
2014/09/04 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
angularjs实现天气预报功能
2020/06/16 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
Angular 2使用路由自定义弹出组件toast操作示例
2019/05/10 Javascript
Jquery cookie插件实现原理代码解析
2020/08/04 jQuery
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
Python 文件重命名工具代码
2009/07/26 Python
Python3中多线程编程的队列运作示例
2015/04/16 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
详解Python 正则表达式模块
2018/11/05 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
小学教师培训感言
2014/02/11 职场文书
党员公开承诺书范文
2014/03/25 职场文书
文明礼仪标语
2014/06/13 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
《兰兰过桥》教学反思
2016/02/20 职场文书