AngularJS-layDate1.0.js 指令

网上参考后加以改进的版本

 

/*时间选择*/

/**
* 使用示例
* <input def-laydate type="text" id="id1" ng-model="startTime"/>
*/

(function () {
	'use strict';
	var layDateDirective = angular.module("layDateModule",[]);
	
	layDateDirective.directive("laydateSelect",['$timeout',function($timeout){
		return{
			require:'?ngModel',
			restrict:'AE',
			scope:{
				ngModel:'=',
				maxDate:'@',
                minDate:'@',
                showhms:'@',//是否显示时分秒
                format:'@',
			},
			link:function(scope,element,attr,ngModel){
				var _date = null,_config={};
				$timeout(function(){ 
					// 初始化参数 
						/**
						 * 选择时间-精确到时分秒
						 */
					_config={
							elem: '#' + attr.id,
							istime: true,
							istoday:true,//是否显示今天
							festival: true,//是否开启节日
							format: scope.format ? scope.format : 'YYYY-MM-DD',
							max:attr.hasOwnProperty('maxDate')?attr.maxDate:'',
							min:attr.hasOwnProperty('minDate')?attr.minDate:'',
							start: laydate.now('YYYY-MM-DD hh:mm:ss'),    //开始日期的设置
							choose: function(data) {//选择好日期的回调
								scope.$apply(setViewValue);
							},
							clear:function(){//清除时间
								ngModel.$setViewValue(null);
							}
							
						}
					
					// 初始化参数 
					laydate.skin('yahui');
					_date = laydate(_config);
					
					// 监听日期最大值
                    if(attr.hasOwnProperty('maxDate')){
                        attr.$observe('maxDate', function (val) {
                            _config.max = val;
                        })
                    }
                    // 监听日期最小值
                    if(attr.hasOwnProperty('minDate')){
                       attr.$observe('minDate', function (val) {
                            _config.min = val;
                        })
                    }
					
					 模型值同步到视图上
					ngModel.$render = function() {
						element.val(ngModel.$viewValue || '');
					};
					
					// 监听元素上的事件
					element.on('blur keyup change', function() {
						scope.$apply(setViewValue);
					});
					
					setViewValue();
					
					// 更新模型上的视图值
					function setViewValue() {
						var val = element.val();
						ngModel.$setViewValue(element.val());
					}
					
					//获取当前时间
					function getNowFormatDate() {
					    var date = new Date();
					    var seperator1 = "-";
					    var seperator2 = ":";
					    var month = date.getMonth() + 1;
					    var strDate = date.getDate();
					    if (month >= 1 && month <= 9) {
					        month = "0" + month;
					    }
					    if (strDate >= 0 && strDate <= 9) {
					        strDate = "0" + strDate;
					    }
					    var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
					            + " " + date.getHours() + seperator2 + date.getMinutes()
					            + seperator2 + date.getSeconds();
					    return currentdate;
					}
				},0)
			}
		}
	}]);
}()) 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值