琪凡睿 2016-04-28
文章参考
https://github.com/rajeshwarpatlolla/ionic-datepicker
1、引入必须的CSS 和 JS 库
<link rel="stylesheet" href="public/ionic/css/ionic.css"> <script src="public/ionic/js/ionic.bundle.js"></script> <script src="public/js/ionic-datepicker.bundle.min.js"></script>
2、自己写的jiazhengApp模块引入ionic-datepicker模块
var app = angular.module("jiazhengApp",["ionic","ionic-datepicker"]);
3、添加全局配置文件(非必须)
angular.module("jiazhengApp").config(function ($stateProvider, $ionicConfigProvider,ionicDatePickerProvider) { //禁用所有缓存 $ionicConfigProvider.views.maxCache(0); $stateProvider //家政服务包的导航首页 .state('jiazhengIndex', { url: '/jiazheng/index', templateUrl: 'template/jiazheng/jiazhengIndexContent.html', //ui-router的控制器引用其他service的方法,参数$state只能在$scope后面,否则会报错 controller: "jiazhengIndexController" }) /**********************日期控件的配置文件 *****************************/ //这个步骤相当于是全局配置,默认配置,可以在实际应用中覆盖相关的配置,该配置不是必须的 var datePickerObj = { setLabel: '确定', todayLabel: '今天', closeLabel: '关闭', mondayFirst: false, inputDate: new Date(), weeksList: ["天", "一", "二", "三", "四", "五", "六"], monthsList: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], templateType: 'popup', showTodayButton: true,//true false dateFormat: 'dd MMM yyyy', closeOnSelect: false, disableWeekdays: [], from: new Date(2015, 8, 1) }; ionicDatePickerProvider.configDatePicker(datePickerObj); $ionicConfigProvider.tabs.position('bottom'); })
4、控制器中使用
angular.module("jiazhengApp").controller("khbjIndexController", ["$scope", "$state",','dateService', function ($scope, $state,dateService,) { //弹出日起对话框 $scope.showDateDialog = function(){ var dateConfig = { showTodayButton: false,//true false inputDate:new Date(new Date().getTime() + 24*2*60*60*1000), from: new Date(new Date().getTime() + 24*2*60*60*1000), to: new Date(new Date().getTime() + 24*8*60*60*1000) }; dateService.showDialog($scope,dateConfig); }; //需要在控制器中定义设定的函数,用于显示时间显示的位置 $scope.setDate=function(){ $scope.formData.orderDate = dateService.getTimeStamp(); }; }]);
5、由于时间是需要与服务器时间一致,需要添加服务获取服务器的时间
/** * 日期控件服务 */ angular.module("jiazhengApp") .factory("dateService",function($http,$state,ionicDatePicker){ return { showDialog : function(__scope__,myconfig){ var that = this; if(myconfig == null || myconfig == undefined || myconfig == ""){ myconfig = {}; } var defaultConfig = { callback: function (val) { //Mandatory var mydate = new Date(val); that.timeStamp = mydate.getFullYear()+"-"+(mydate.getMonth()+1)+"-"+mydate.getDate(); //需要在控制器中定义设定的函数,用于显示时间显示的位置 __scope__.setDate(); }, disabledDates: [ new Date('Wednesday') ], from: new Date(), to: new Date(new Date().getTime() + 24*7*60*60*1000), inputDate: new Date(), mondayFirst: true, disableWeekdays: [], closeOnSelect: false, templateType: 'popup' }; defaultConfig = $.extend(defaultConfig,myconfig); ionicDatePicker.openDatePicker(defaultConfig); }, //存储控件时间 timeStamp:0, //获取控件时间 getTimeStamp:function(){ return this.timeStamp; }, //存储服务器时间 serverTimeStamp:0, //获取服务器时间 getServerTimeStamp : function(){ var that = this; var url = "/index.php/Wap/Homemake/thisTime.html"; var p = $http.post(url); p.success(function(response,header,config,status){ if(response.status == 1){ that.serverTimeStamp = response.data; } }); } }; });