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 相关文章推荐
js 覆盖和重载 函数
Sep 25 Javascript
基于jquery DOM写的类似微博发布的效果
Oct 20 Javascript
js 自制滚动条的小例子
Mar 16 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
Mar 23 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
Nov 07 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
Mar 09 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
Jan 16 Javascript
javascript中数组的常用算法深入分析
Mar 12 Javascript
layer.open提交子页面的form和layedit文本编辑内容的方法
Sep 27 Javascript
Vue修改项目启动端口号方法
Nov 07 Javascript
Vue基础配置讲解
Nov 29 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
Jul 12 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
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
jquery form 隐藏的input 选择
2014/04/29 Javascript
在JavaScript中构建ArrayList示例代码
2014/09/17 Javascript
几种tab切换详解
2017/02/03 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
JavaScript创建对象的七种方式全面总结
2017/08/21 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
详解Vscode中使用Eslint终极配置大全
2019/11/08 Javascript
Javascript异步编程async实现过程详解
2020/04/02 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
python每次处理固定个数的字符的方法总结
2013/01/29 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
详解python3实现的web端json通信协议
2016/12/29 Python
详解用python实现简单的遗传算法
2018/01/02 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
python实现网站微信登录的示例代码
2019/09/18 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
班组安全员工作职责
2014/02/01 职场文书
优秀老师事迹材料
2014/02/05 职场文书
小学教师寄语大全
2014/04/03 职场文书
读书月活动方案
2014/05/22 职场文书
超市创意活动方案
2014/08/15 职场文书
2014年残联工作总结
2014/11/21 职场文书
员工离职感谢信
2015/01/22 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书