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技巧收藏
Apr 07 Javascript
jquery对表单操作2
Apr 06 Javascript
javascript生成大小写字母
Jul 03 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
Nov 25 Javascript
javascript实现无法关闭的弹框
Nov 27 Javascript
js实现的在线调色板功能完整实例
Dec 21 Javascript
canvas压缩图片转换成base64格式输出文件流
Mar 09 Javascript
移动端刮刮乐的实现方式(js+HTML5)
Mar 23 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
Mar 01 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
Apr 20 Javascript
Html5生成验证码的示例代码
May 10 Javascript
如何通过简单的代码描述Angular父组件、子组件传值
Apr 07 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
成为好程序员必须避免的5个坏习惯
2014/07/04 PHP
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
php从字符串创建函数的方法
2015/03/16 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
2016/02/23 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
jQuery通过Ajax返回JSON数据
2015/04/28 Javascript
Javascript 字符串模板的简单实现
2016/02/13 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
js实现多图和单图上传显示
2019/12/18 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
在Vue中使用HOC模式的实现
2020/08/23 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
Python绘制KS曲线的实现方法
2018/08/13 Python
使用python Fabric动态修改远程机器hosts的方法
2018/10/26 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
Python脚本实现Zabbix多行日志监控过程解析
2020/08/26 Python
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
美国翻新电子产品商店:The Store
2019/10/08 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
公务员政审个人鉴定
2014/02/25 职场文书
幸福家庭标语
2014/06/27 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
学习三严三实心得体会
2014/10/13 职场文书
春季运动会开幕词
2015/01/28 职场文书
个人工作年终总结
2015/03/09 职场文书
运动会通讯稿50字
2015/07/20 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
python四种出行路线规划的实现
2021/06/23 Python
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL