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 相关文章推荐
Javascript 日期对象Date扩展方法
May 30 Javascript
javascript 写类方式之四
Jul 05 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
Apr 02 Javascript
javascript中callee与caller的用法和应用场景
Dec 08 Javascript
jQuery1.6 正式版发布并提供下载
May 05 Javascript
jQuery移动web开发中的页面初始化与加载事件
Dec 03 Javascript
详解JavaScript数组过滤相同元素的5种方法
May 23 Javascript
Vue中的scoped实现原理及穿透方法
May 15 Javascript
vuejs router history 配置到iis的方法
Sep 20 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
Oct 12 Javascript
浅谈vuex的基本用法和mapaction传值问题
Nov 08 Javascript
8个非常实用的Vue自定义指令
Dec 15 Vue.js
一个简易时钟效果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 文件上传源码分析(RFC1867)
2009/10/30 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
PHP sdk实现在线打包代码示例
2020/12/09 PHP
js 调整select 位置的函数
2008/02/21 Javascript
javascript 日期常用的方法
2009/11/11 Javascript
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
复制js对象方法(详解)
2013/07/08 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
javascript动态添加删除tabs标签的方法
2015/07/06 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
详解JavaScript函数
2015/12/01 Javascript
js每隔两秒输出数组中的一项(实例)
2017/05/28 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
EasyUI的DataGrid每行数据添加操作按钮的实现代码
2017/08/22 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
jQuery 改变P标签文本值方法
2018/02/24 jQuery
Python中的os.path路径模块中的操作方法总结
2016/07/07 Python
Python函数装饰器实现方法详解
2018/12/22 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
学校采购员岗位职责
2014/01/02 职场文书
优秀求职信范文分享
2014/01/26 职场文书
消防安全管理制度
2014/02/01 职场文书
学习雷锋倡议书
2014/04/15 职场文书
商务日语专业自荐信
2014/04/17 职场文书
幼儿园秋季开学寄语
2014/08/02 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
捐助倡议书
2015/01/19 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
运动员入场前导词
2015/07/20 职场文书
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python