1. 程式人生 > >ngCordova外掛(5)之DatePicker時間選擇器外掛的使用

ngCordova外掛(5)之DatePicker時間選擇器外掛的使用

今天來說以下幾乎所有專案都會遇到的時間選擇問題,由於企業級APP一般都是銷售,服務,管理一類的APP,所以使用者選擇時間的操作必不可少。本次我以ngcordova的時間選擇外掛DatePicker為例,講一下這個又好用,又全是大坑的時間選擇外掛。

首先外掛的安裝:cordova plugin add cordova-plugin-datepicker
然後說一下常用的可配置內容:
1.mode
時間選擇器的模式
支援平臺:Android/IOS/Windows
值型別:String
值可選項:date(日期)/time(時間)/datetime(只支援IOS和Windows)
2.date
選定的日期
支援平臺:Android/IOS/Windows
值型別:String
預設值:new Date()
3.titleText


支援平臺:Android
時間選擇器的標題
值型別:String或空String
預設值:空String
4.okText 
肯定事件的按鈕(一般都為確定)
支援平臺:Android
值型別:String或空String
預設值:空String
5.cancelText
否定事件的按鈕(一般都為取消)
支援平臺:Android
值型別:String或空String
預設值:空String
6.todayText
支援平臺:Android
"當前日期"按鈕顯示的文字,如果為空,則不顯示"當前日期"按鈕
值型別:String或空String
預設值:空String
7.nowText
支援平臺:Android
"現在"按鈕顯示的文字,如果為空,則不顯示"現在"按鈕
值型別:String或空String
預設值:空String
8.is24Hour

支援平臺:Android
以24小時格式顯示時間
值型別:boolean型別
值選項:true/false
預設值:false
9.androidTheme(這個非常非常重要)
支援平臺:Android
選擇時間選擇器的主題
型別:int
值選項:THEME_TRADITIONAL | THEME_HOLO_DARK | THEME_HOLO_LIGHT | THEME_DEVICE_DEFAULT_DARK | THEME_DEVICE_DEFAULT_LIGHT
預設值:THEME_TRADITIONAL
10.doneButtonLabel
"完成"按鈕顯示的文字
支援平臺:IOS
值型別:String
預設值:"Done"
11.doneButtonColor

"完成"按鈕的顏色
支援平臺:IOS
值型別:String
預設值:"#0000FF"
12.cancelButtonLabel 
"取消"按鈕顯示的文字
支援平臺:IOS
值型別:String
預設值:"Cancel"
13.cancelButtonColor
" 取消"按鈕的顏色
支援平臺:IOS
值型別:String
預設值:"#0000FF"
14.locale(這個非常重要)
選定時間選擇外掛的語言
支援平臺:IOS
型別:字串
預設值:"en_us"(英語),中文是(zh_cn)
常用選項說完後,說一下一般的用法,比如要封裝在自己的方法中

 $scope.selectDate=function(){

    var options={
    date: new Date(),//預設選定日期為當天
    mode: 'date',//
    titleText:'請選擇時間',
    okText:'確定',
    cancelText:'取消',
    doneButtonLabel:'確認',
    cancelButtonLabel:'取消'
}
 $cordovaDatePicker.show(options).then(function(date){
   //這個date就是我們選定好的時間
 }
 }

那麼現在問題來了,這個date能夠直接用嗎?
答案是不能,因為他返回的是值是這樣的:
比如我們選定了2015年12月30日

然後在程式碼中我們alert(date); //date為外掛返回的值,返回值為標準的時間戳

可見返回的是date型別資料,所以我們要按照一定的格式拿到年月日
用date型別的getFullYear()拿到4位數的年份
getMonth()+1拿到月份,(因為getMonth()返回值為1-11 number型別)
getDate()拿到日期
將三者拼接就是年月日

還有就是如果在選項資訊中,沒有說明iOS平臺的外掛語言是什麼,就會以英文為預設


所以我們要在選項內容中
var option={
  locale="zh_cn"
}

這樣的話,在iOS上,時間選擇外掛就變為中文了

還有就是我之前強調非常非常重要的
androidTheme這個選項
這個選項的值說是int型別,值列表確是各種字串
THEME_TRADITIONAL | THEME_HOLO_DARK | THEME_HOLO_LIGHT | THEME_DEVICE_DEFAULT_DARK |THEME_DEVICE_DEFAULT_LIGHT
所以大家在這個選項如果這麼用

var option={
  androidTheme:"THEME_HOLO_LIGHT"
}

這麼設定是沒有任何效果的,還是預設的樣式
要這麼寫,配置選項才會生效

var option={
   androidTheme : window.datePicker.ANDROID_THEMES.THEME_HOLO_LIGHT
 }

下面給大家看一下,Android平臺時間選擇器可配置的樣式都有哪些
首先是THEME_TRADITIONAL,這個是android2.3版本的時間選擇器樣式,也是預設樣式


然後是THEME_HOLO_DARK,這個是android4.0版本的時間選擇器樣式,黑色版(Android4.2)

然後是THEME_HOLO_LIGHT,這個是android4.0版本的時間選擇器樣式,白色版(Android4.2)

然後是THEME_DEVICE_DEFAULT_DARK,這個是android5.0版本的時間選擇器樣式,黑色版(Android5.0)

然後是THEME_DEVICE_DEFAULT_LIGHT,這個是android5.0版本時間選擇器樣式,白色版(Android5.0)

說了這麼多關於cordova-plugin-datepicker這款時間選擇外掛,相信大家已經知道怎麼去合理的使用這款外掛了