摘要:接著上次的進(jìn)度,我們已經(jīng)實(shí)現(xiàn)了一個(gè)。我們應(yīng)該完成的效果是一個(gè),日期選擇器。好了,到這一步,還不能實(shí)現(xiàn)這個(gè)插件。我們還需要添加一個(gè)方法,因?yàn)椴]有被執(zhí)行,所以我們需要添加如下代碼好了,這里事件選擇插件就能順利使用了。與的結(jié)合使用實(shí)例
接著上次的進(jìn)度,我們已經(jīng)實(shí)現(xiàn)了一個(gè)todo-list。它已經(jīng)具備了基本的功能,可以新建、編輯、刪除任務(wù)。但是美中不足的是,它的時(shí)間設(shè)定上只能通過(guò)輸入一段字符串來(lái)設(shè)定,很不社會(huì)。我們應(yīng)該完成的效果是一個(gè)time-picker,日期選擇器。
本來(lái)打算自己造輪子,無(wú)奈公司最近一段時(shí)間項(xiàng)目趕得緊,加上生活上遇到了一點(diǎn)挫折,直到7月初才有空閑下來(lái)想想代碼,造輪子時(shí)間可能不夠,也只能利用別人的現(xiàn)成插件了。google了幾個(gè)vue的時(shí)間選擇器插件,不是代碼修改量太大就是看不太懂,要不就是UI和我的整體風(fēng)格不符。于是另選思路,找到了現(xiàn)在的這個(gè)bootstrap的插件,代碼量不大,也在自己可以理解的范圍。于是開工。
不過(guò)中間還是有一些曲折,嘗試幾次還是沒辦法實(shí)現(xiàn)數(shù)據(jù)的雙向綁定。我曾經(jīng)試過(guò)想要把時(shí)間的數(shù)據(jù)換成鍵值對(duì)的形式,結(jié)果引發(fā)了詭異的bug,故作罷,最后還是使用了字符串,使用這個(gè)bootstrap插件,也有一部分的原因是因?yàn)檫@個(gè)的輸出結(jié)果也是字符串,代碼的修改量會(huì)很少。
好了,廢話說(shuō)了一籮筐,看代碼吧。
github地址:地址
相關(guān)資源首先需要下載插件:http://www.bootcss.com/p/boot...
度娘即可,sb都能找到。
解壓打開,我們打開sample的V3版本。用編輯器打開index.html,先找到需要配置的文件,可以看到是下面這幾個(gè):
bootstrap-datetimepicker.min.css
bootstrap-datetimepicker.js
bootstrap-datetimepicker.fr.js
本來(lái)在需要的插件里還有JQ、bootstrap,但是這兩個(gè)我們之前加載過(guò)了,這里就不用另外加載了。
第三個(gè)是文字插件,默認(rèn)的是法語(yǔ),可以在相應(yīng)的文件夾換成中文的。我們要把這三個(gè)文件放到我們的文件夾里,放哪里隨便,只要你找得到,但還是建議放在src文件夾里。
代碼內(nèi)容放好了之后,就需要導(dǎo)入了。和導(dǎo)入bootstrap一樣,只要在main.js里注冊(cè)即可,代碼如下:
import "./bootstrap-datetimepicker/bootstrap-datetimepicker.min.css" import "./bootstrap-datetimepicker/bootstrap-datetimepicker.min.js" import "./bootstrap-datetimepicker/bootstrap-datetimepicker.zh-CN.js"
接著,打開編輯器組件editor.vue,我們首先要去掉時(shí)間輸入的。接著修改為:
刪掉的,為了保留雙向綁定的功能,v-bind:value="setTime被我轉(zhuǎn)移到了對(duì)應(yīng)的上,而v-on:input="saveSettime"則被我去掉了。
為什么呢?因?yàn)檫@個(gè)方法是為了在輸入值時(shí)獲取并保存對(duì)應(yīng)的值,而當(dāng)我們用這個(gè)插件時(shí),是沒辦法觸發(fā)這個(gè)v-on:input事件的,需要另外設(shè)置事件。具體的設(shè)置下面會(huì)說(shuō),這里替換掉就可以了。
對(duì)應(yīng)的,下面的內(nèi)容也需要替換。
saveSettime(e)自然去掉,那么這個(gè)觸發(fā)事件放到哪里去呢?答案是:放在事件選擇器這個(gè)框消失的時(shí)候。
在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(); }) }
可以看到上面的代碼前一部分是插件的一些配置信息,可以設(shè)置語(yǔ)言、日期格式等等......
第二部分則是我在前面說(shuō)的事件觸發(fā),會(huì)在日期選擇框消失的時(shí)候觸發(fā)一個(gè)賦值事件,賦值的內(nèi)容和上面的v-on:input一樣。當(dāng)然這里我會(huì)在最開始的時(shí)候var self=this,這是閉包的知識(shí),如果直接用this的話,是沒辦法取到正確的值的。
好了,到這一步,還不能實(shí)現(xiàn)這個(gè)插件。
我們還需要添加一個(gè)mounted方法,因?yàn)?b>dateDefind()并沒有被執(zhí)行,所以我們需要添加如下代碼:
mounted:function(){ this.dateDefind(); }
好了,這里事件選擇插件就能順利使用了。那么這個(gè)todolist的基本功能就全部實(shí)現(xiàn)了。我的敘述可能有些不清楚的地方,所以需要你看看我的github,上面有我的源碼,對(duì)照著寫一遍吧。
最后還要感謝下面這篇文章給我的啟發(fā),歡迎大家點(diǎn)進(jìn)去查看原文。
vue2.0 與 bootstrap datetimepicker的結(jié)合使用實(shí)例
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/107075.html
摘要:最近在研究的相關(guān)知識(shí),最好的學(xué)習(xí)方法莫過(guò)于自己開發(fā)一個(gè),這樣帶著問(wèn)題來(lái)學(xué)習(xí),進(jìn)步自然飛速。在首頁(yè)里,我們會(huì)用寫一個(gè)導(dǎo)航,通過(guò)的路由導(dǎo)航到不同的應(yīng)用。我們?cè)谖募A里創(chuàng)建一個(gè)新的組件。 最近在研究vue的相關(guān)知識(shí),最好的學(xué)習(xí)方法莫過(guò)于自己開發(fā)一個(gè)SPA,這樣帶著問(wèn)題來(lái)學(xué)習(xí),進(jìn)步自然飛速。于是邊查邊寫差不多花了2周寫完了一個(gè)todo-list,功能不夠完備,但是麻雀雖小,卻也是五臟俱全,基本...
摘要:組件結(jié)構(gòu)接著我們就該搭建這個(gè)播放器的組件了。總的原理是首先獲取音頻的持續(xù)時(shí)間,然后通過(guò)一個(gè)定時(shí)器,不斷更新顯示時(shí)間,播放完成時(shí),計(jì)時(shí)器停止。這個(gè)頁(yè)面比較簡(jiǎn)單,播放器標(biāo)簽,綁定了事件,即播放完成后執(zhí)行。 這個(gè)播放器的開發(fā)歷時(shí)2個(gè)多月,并不是說(shuō)它有多復(fù)雜,相反它的功能還非常不完善,僅具雛形。之所以磨磨蹭蹭這么久,一是因?yàn)橥涎樱彩菍?shí)習(xí)公司項(xiàng)目太緊。8月底結(jié)束實(shí)習(xí)前寫完了樣式,之后在家空閑...
摘要:網(wǎng)上有很多前端的學(xué)習(xí)路徑文章,大多是知識(shí)點(diǎn)羅列為主或是資料的匯總,數(shù)據(jù)量讓新人望而卻步。天了解一個(gè)前端框架。也可以關(guān)注微信公眾號(hào)曉舟報(bào)告,發(fā)送獲取資料,就能收到下載密碼,網(wǎng)盤地址在最下方,獲取教程和案例的資料。 前言 好的學(xué)習(xí)方法可以事半功倍,好的學(xué)習(xí)路徑可以指明前進(jìn)方向。這篇文章不僅要寫學(xué)習(xí)路徑,還要寫學(xué)習(xí)方法,還要發(fā)資料,干貨滿滿,準(zhǔn)備接招。 網(wǎng)上有很多前端的學(xué)習(xí)路徑文章,大多是知...
摘要:解決了組件之間同一狀態(tài)的共享問(wèn)題。當(dāng)我們的應(yīng)用遇到多個(gè)組件之間的共享問(wèn)題時(shí)會(huì)需要狀態(tài)管理核心狀態(tài)管理有個(gè)核心,分別是以及。當(dāng)錯(cuò)誤出現(xiàn)時(shí),我們現(xiàn)在也會(huì)有一個(gè)記錄之前發(fā)生了什么。此外,每個(gè)實(shí)例組件仍然可以擁有和管理自己的私有狀態(tài) 一,css部分 1,簡(jiǎn)單介紹下css權(quán)重優(yōu)先級(jí): 默認(rèn)樣式 .father{ width:300px; ...
閱讀 1613·2021-11-23 09:51
閱讀 1183·2019-08-30 13:57
閱讀 2263·2019-08-29 13:12
閱讀 2017·2019-08-26 13:57
閱讀 1202·2019-08-26 11:32
閱讀 981·2019-08-23 15:08
閱讀 707·2019-08-23 14:42
閱讀 3087·2019-08-23 11:41