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 相关文章推荐
window.location.hash 使用说明
Nov 08 Javascript
基于jquery的滑动样例代码
Nov 20 Javascript
js常用排序实现代码
Dec 28 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
Nov 12 Javascript
网页中JS函数自动执行常用三种方法
Mar 30 Javascript
vue.js开发环境安装教程
Mar 17 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
Dec 31 Javascript
JS关于刷新页面的相关总结
May 09 Javascript
vuejs点击class变化的实例
Sep 05 Javascript
简单了解微信小程序的目录结构
Jul 01 Javascript
vue表单数据交互提交演示教程
Nov 13 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
Nov 05 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
php下尝试使用GraphicsMagick的缩略图功能
2011/01/01 PHP
PHP使用json_encode函数时不转义中文的解决方法
2014/11/12 PHP
PHP获取当前相对于域名目录的方法
2015/06/26 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
js实现飞入星星特效代码
2014/10/17 Javascript
jQuery中replaceWith()方法用法实例
2014/12/25 Javascript
原生javascript实现简单的datagrid数据表格
2015/01/02 Javascript
React学习笔记之事件处理(二)
2017/07/02 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
Python中的闭包详细介绍和实例
2014/11/21 Python
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
生物技术专业研究生自荐信
2013/09/22 职场文书
最新茶叶店创业计划书
2014/01/14 职场文书
投标邀请书范本
2015/02/02 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
药品开票员岗位职责
2015/04/15 职场文书
企业爱心捐款倡议书
2015/04/27 职场文书
会计主管竞聘书
2015/09/15 职场文书
电力安全学习心得体会
2016/01/18 职场文书
2019年员工晋升管理制度范本!
2019/07/08 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技