摘要:接著上次的進度,我們已經實現了一個。我們應該完成的效果是一個,日期選擇器。好了,到這一步,還不能實現這個插件。我們還需要添加一個方法,因為并沒有被執行,所以我們需要添加如下代碼好了,這里事件選擇插件就能順利使用了。與的結合使用實例
接著上次的進度,我們已經實現了一個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的結合使用實例
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/107075.html
摘要:最近在研究的相關知識,最好的學習方法莫過于自己開發一個,這樣帶著問題來學習,進步自然飛速。在首頁里,我們會用寫一個導航,通過的路由導航到不同的應用。我們在文件夾里創建一個新的組件。 最近在研究vue的相關知識,最好的學習方法莫過于自己開發一個SPA,這樣帶著問題來學習,進步自然飛速。于是邊查邊寫差不多花了2周寫完了一個todo-list,功能不夠完備,但是麻雀雖小,卻也是五臟俱全,基本...
摘要:組件結構接著我們就該搭建這個播放器的組件了。總的原理是首先獲取音頻的持續時間,然后通過一個定時器,不斷更新顯示時間,播放完成時,計時器停止。這個頁面比較簡單,播放器標簽,綁定了事件,即播放完成后執行。 這個播放器的開發歷時2個多月,并不是說它有多復雜,相反它的功能還非常不完善,僅具雛形。之所以磨磨蹭蹭這么久,一是因為拖延,二也是實習公司項目太緊。8月底結束實習前寫完了樣式,之后在家空閑...
摘要:網上有很多前端的學習路徑文章,大多是知識點羅列為主或是資料的匯總,數據量讓新人望而卻步。天了解一個前端框架。也可以關注微信公眾號曉舟報告,發送獲取資料,就能收到下載密碼,網盤地址在最下方,獲取教程和案例的資料。 前言 好的學習方法可以事半功倍,好的學習路徑可以指明前進方向。這篇文章不僅要寫學習路徑,還要寫學習方法,還要發資料,干貨滿滿,準備接招。 網上有很多前端的學習路徑文章,大多是知...
摘要:解決了組件之間同一狀態的共享問題。當我們的應用遇到多個組件之間的共享問題時會需要狀態管理核心狀態管理有個核心,分別是以及。當錯誤出現時,我們現在也會有一個記錄之前發生了什么。此外,每個實例組件仍然可以擁有和管理自己的私有狀態 一,css部分 1,簡單介紹下css權重優先級: 默認樣式 .father{ width:300px; ...
閱讀 1607·2021-11-23 09:51
閱讀 1177·2019-08-30 13:57
閱讀 2256·2019-08-29 13:12
閱讀 2011·2019-08-26 13:57
閱讀 1192·2019-08-26 11:32
閱讀 978·2019-08-23 15:08
閱讀 699·2019-08-23 14:42
閱讀 3079·2019-08-23 11:41