vue2.x select2 指令封装详解


Posted in Javascript onOctober 12, 2017

本文介绍了vue2.x select2 指令封装,分享给大家,具体如下:

其他的就不说了,说说封装过程的问题吧

1、vue不同版本指令接受参数不一样

2、酱油君对于vue2.x双向绑定的机制不了解(有大神路过望在评论中不吝赐教)

上代码:

<!DOCTYPE html>
<html>
<head>
  <title>vue select2 封装</title>
  <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="external nofollow" rel="stylesheet" />
  <script src="https://unpkg.com/vue/dist/vue.js"></script>
  <script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
  <style type="text/css">
    .content{
      text-align: center;
      padding:50px;
    }
    .content *{
      text-align: left;
    }
    .select{
      width: 350px;
    }
  </style>
</head>
<body>
  <div class="content" id="vue-example">
    <select class="select" v-select2='options' v-model="selectValue"></select>
    <br/>
    <span>结果:{{ selectValue }}</span>
  </div>
</body>
<script type="text/javascript">
  Vue.directive('select2', {
   inserted: function (el, binding, vnode) {
     let options = binding.value || {};
 
    $(el).select2(options).on("select2:select", (e) => {
     // v-model looks for
     // - an event named "change"
     // - a value with property path "$event.target.value"
       el.dispatchEvent(new Event('change', { target: e.target })); //说好的双向绑定,竟然不安套路
    });
   },
   update: function(el, binding, vnode) {
    $(el).trigger("change");
   }
  });
 
  var vueApp = new Vue({
   el: "#vue-example",
   data: {
    selectValue: '你还没有选值',
    options: {
      data: [
          { id: 0, text: 'enhancement' },
        { id: 1, text: 'bug' },
        { id: 2, text: 'duplicate' },
        { id: 3, text: 'invalid' },
        { id: 4, text: 'wontfix' }
      ]
    }
   }
  });
</script>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一款Jquery 分页插件的改造方法(服务器端分页)
Jul 11 Javascript
JQuery.Ajax之错误调试帮助信息介绍
Jul 04 Javascript
jquery滚动特效集锦
Jun 03 Javascript
详解ECharts使用心得总结
Dec 06 Javascript
关于Angular2 + node接口调试的解决方案
May 28 Javascript
bootstrap daterangepicker汉化以及扩展功能
Jun 15 Javascript
js指定步长实现单方向匀速运动
Jul 17 Javascript
vue-resource调用promise取数据方式详解
Jul 21 Javascript
vue.js移动端app实战1:初始配置详解
Jul 24 Javascript
vue实现提示保存后退出的方法
Mar 15 Javascript
JS正则表达式常见用法实例详解
Jun 19 Javascript
node中的密码安全(加密)
Sep 17 Javascript
一个简易时钟效果js实现代码
Mar 25 #Javascript
微信小程序实现页面跳转传值的方法
Oct 12 #Javascript
微信小程序 页面滑动事件的实例详解
Oct 12 #Javascript
微信小程序 动画的简单实例
Oct 12 #Javascript
node通过npm写一个cli命令行工具
Oct 12 #Javascript
JS实现自定义状态栏动画文字效果示例
Oct 12 #Javascript
AngularJS实现表单验证功能详解
Oct 12 #Javascript
You might like
swfupload 多文件上传实现代码
2008/08/27 PHP
php计算整个目录大小的方法
2015/06/19 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
javascript void(0)的妙用
2009/10/21 Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
2012/07/31 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
javascript常见用法总结
2014/05/22 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
Vue 自适应高度表格的实现方法
2020/05/13 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
跟老齐学Python之print详解
2014/09/28 Python
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
Python 处理日期时间的Arrow库使用
2020/08/18 Python
英国奢侈品概念店:Base Blu
2019/05/16 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
举例说明类变量和实例变量的区别
2016/06/30 面试题
宾馆总经理岗位职责
2014/02/14 职场文书
人民教师的自我评价分享
2014/02/21 职场文书
乡村文明行动实施方案
2014/03/29 职场文书
美术学专业求职信
2014/07/23 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书