摘要:接着上次的进度,我们已经实现了一个。我们应该完成的效果是一个,日期选择器。好了,到这一步,还不能实现这个插件。我们还需要添加一个方法,因为并没有被执行,所以我们需要添加如下代码好了,这里事件选择插件就能顺利使用了。与的结合使用实例
接着上次的进度,我们已经实现了一个todo-list。它已经具备了基本的功能,可以新建、编辑、删除任务。但是美中不足的是,它的时间设定上只能通过输入一段字符串来设定,很不社会。我们应该完成的效果是一个time-picker,日期选择器。
本来打算自己造轮子,无奈公司最近一段时间项目赶得紧,加上生活上遇到了一点挫折,直到7月初才有空闲下来想想代码,造轮子时间可能不够,也只能利用别人的现成插件了。google了几个vue的时间选择器插件,不是代码修改量太大就是看不太懂,要不就是UI和我的整体风格不符。于是另选思路,找到了现在的这个bootstrap的插件,代码量不大,也在自己可以理解的范围。于是开工。
不过中间还是有一些曲折,尝试几次还是没办法实现数据的双向绑定。我曾经试过想要把时间的数据换成键值对的形式,结果引发了诡异的bug,故作罢,最后还是使用了字符串,使用这个bootstrap插件,也有一部分的原因是因为这个的输出结果也是字符串,代码的修改量会很少。
好了,废话说了一箩筐,看代码吧。
github地址:地址
相关资源首先需要下载插件:http://www.bootcss.com/p/boot...
度娘即可,sb都能找到。
解压打开,我们打开sample的V3版本。用编辑器打开index.html,先找到需要配置的文件,可以看到是下面这几个:
bootstrap-datetimepicker.min.css
bootstrap-datetimepicker.js
bootstrap-datetimepicker.fr.js
本来在需要的插件里还有JQ、bootstrap,但是这两个我们之前加载过了,这里就不用另外加载了。
第三个是文字插件,默认的是法语,可以在相应的文件夹换成中文的。我们要把这三个文件放到我们的文件夹里,放哪里随便,只要你找得到,但还是建议放在src文件夹里。
代码内容放好了之后,就需要导入了。和导入bootstrap一样,只要在main.js里注册即可,代码如下:
import "./bootstrap-datetimepicker/bootstrap-datetimepicker.min.css" import "./bootstrap-datetimepicker/bootstrap-datetimepicker.min.js" import "./bootstrap-datetimepicker/bootstrap-datetimepicker.zh-CN.js"
接着,打开编辑器组件editor.vue,我们首先要去掉时间输入的。接着修改为:
删掉的,为了保留双向绑定的功能,v-bind:value="setTime被我转移到了对应的上,而v-on:input="saveSettime"则被我去掉了。
为什么呢?因为这个方法是为了在输入值时获取并保存对应的值,而当我们用这个插件时,是没办法触发这个v-on:input事件的,需要另外设置事件。具体的设置下面会说,这里替换掉就可以了。
对应的,下面的内容也需要替换。
saveSettime(e)自然去掉,那么这个触发事件放到哪里去呢?答案是:放在事件选择器这个框消失的时候。
在methods里添加代码如下:
dateDefind(){ var self=this; $(".form_date").datetimepicker({ language: "zh-CN", format:"yyyy-mm-dd", weekStart: 1, todayBtn: 1, autoclose: 1, todayHighlight: 1, startView: 2, minView: 2, forceParse: 0 }), $(".form_date").datetimepicker() .on("hide",function(e){ self.settimeInput=$(".settime-input").val(); }) }
可以看到上面的代码前一部分是插件的一些配置信息,可以设置语言、日期格式等等......
第二部分则是我在前面说的事件触发,会在日期选择框消失的时候触发一个赋值事件,赋值的内容和上面的v-on:input一样。当然这里我会在最开始的时候var self=this,这是闭包的知识,如果直接用this的话,是没办法取到正确的值的。
好了,到这一步,还不能实现这个插件。
我们还需要添加一个mounted方法,因为dateDefind()并没有被执行,所以我们需要添加如下代码:
mounted:function(){ this.dateDefind(); }
好了,这里事件选择插件就能顺利使用了。那么这个todolist的基本功能就全部实现了。我的叙述可能有些不清楚的地方,所以需要你看看我的github,上面有我的源码,对照着写一遍吧。
最后还要感谢下面这篇文章给我的启发,欢迎大家点进去查看原文。
vue2.0 与 bootstrap datetimepicker的结合使用实例
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/107075.html
摘要:最近在研究的相关知识,最好的学习方法莫过于自己开发一个,这样带着问题来学习,进步自然飞速。在首页里,我们会用写一个导航,通过的路由导航到不同的应用。我们在文件夹里创建一个新的组件。 最近在研究vue的相关知识,最好的学习方法莫过于自己开发一个SPA,这样带着问题来学习,进步自然飞速。于是边查边写差不多花了2周写完了一个todo-list,功能不够完备,但是麻雀虽小,却也是五脏俱全,基本...
摘要:组件结构接着我们就该搭建这个播放器的组件了。总的原理是首先获取音频的持续时间,然后通过一个定时器,不断更新显示时间,播放完成时,计时器停止。这个页面比较简单,播放器标签,绑定了事件,即播放完成后执行。 这个播放器的开发历时2个多月,并不是说它有多复杂,相反它的功能还非常不完善,仅具雏形。之所以磨磨蹭蹭这么久,一是因为拖延,二也是实习公司项目太紧。8月底结束实习前写完了样式,之后在家空闲...
摘要:网上有很多前端的学习路径文章,大多是知识点罗列为主或是资料的汇总,数据量让新人望而却步。天了解一个前端框架。也可以关注微信公众号晓舟报告,发送获取资料,就能收到下载密码,网盘地址在最下方,获取教程和案例的资料。 前言 好的学习方法可以事半功倍,好的学习路径可以指明前进方向。这篇文章不仅要写学习路径,还要写学习方法,还要发资料,干货满满,准备接招。 网上有很多前端的学习路径文章,大多是知...
摘要:解决了组件之间同一状态的共享问题。当我们的应用遇到多个组件之间的共享问题时会需要状态管理核心状态管理有个核心,分别是以及。当错误出现时,我们现在也会有一个记录之前发生了什么。此外,每个实例组件仍然可以拥有和管理自己的私有状态 一,css部分 1,简单介绍下css权重优先级: 默认样式 .father{ width:300px; ...
阅读 1606·2021-11-23 09:51
阅读 1175·2019-08-30 13:57
阅读 2255·2019-08-29 13:12
阅读 2010·2019-08-26 13:57
阅读 1191·2019-08-26 11:32
阅读 976·2019-08-23 15:08
阅读 698·2019-08-23 14:42
阅读 3078·2019-08-23 11:41