知识汇总09~bootstrap-select在Vue中的封装
在项目中为何选择了bootstrap的bootstrap-select插件,因为相比其他下拉插件,这个插件更成熟,兼容性更好,也容易使用! 如何在Vue中封装成组件: 在项目中引入相应的bootstrap,与bootstrap-select的js与css 1、js:组件封装 Vue.component(‘vm-select‘,{ props:[‘options‘,‘value‘], template:"<select class=‘selectpicker‘ data-live-search=‘true‘ data-live-search-placeholder=‘搜索‘><option :value=‘option.name‘ v-for=‘option in options‘>{{option.name}}</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); } }) }, watch:{ value(newV,oldV){ $(this.$el).selectpicker(‘val‘,newV); } }, updated:function(){ this.$nextTick(function(){ $(this.$el).selectpicker(‘refresh‘); }) }, destroyed:function(){ $(this.$el).selectpicker(‘destroy‘); } }) 到此,插件已经封装好了~ 2、在html中使用?注意:在vue中要使用双向数据绑定,需要使用v-bind:属性,可省略为? ? ?:属性 <vm-select :options="appNameSelect"? v-model="item.appName" ref="typeSelect" :disabled="bbool"></vm-select> 完成了~ 可以根据项目需要,动态修改props参数和下拉菜单的循环数据结构,我的项目是传入的对象数组,所以…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |