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 相关文章推荐
document 和 document.all 分别什么时候用
Jun 22 Javascript
javascript中typeof的使用示例
Dec 19 Javascript
jquery实现点击消失的代码
Mar 03 Javascript
6种javascript显示当前系统时间代码
Dec 01 Javascript
Knockoutjs 学习系列(一)ko初体验
Jun 07 Javascript
ionic实现下拉刷新载入数据功能
May 11 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
Nov 15 Javascript
解决layui中的form表单与button的点击事件冲突问题
Aug 15 Javascript
vue: WebStorm设置快速编译运行的方法
Oct 18 Javascript
vue递归组件实战之简单树形控件实例代码
Aug 27 Javascript
package.json中homepage属性的作用详解
Mar 11 Javascript
JavaScript parseInt0.0000005打印5原理解析
Jul 23 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代码优化及php相关问题总结
2006/10/09 PHP
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
PHP中开启gzip压缩的2种方法
2015/01/31 PHP
PHP经典面试题集锦
2015/03/19 PHP
PHP INT类型在内存中占字节详解
2019/07/20 PHP
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
javascript基本语法
2016/05/31 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
2019/08/26 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
Python实现的简单hangman游戏实例
2015/06/28 Python
Python中元组,列表,字典的区别
2017/05/21 Python
python制作小说爬虫实录
2017/08/14 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
英文自荐信
2013/12/19 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
协议书样本
2014/04/23 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
春节晚会开场白
2015/05/29 职场文书
亮剑观后感500字
2015/06/05 职场文书
python 自动化偷懒的四个实用操作
2021/04/11 Python
对Keras自带Loss Function的深入研究
2021/05/25 Python
教你使用pyinstaller打包Python教程
2021/05/27 Python