diff --git a/angular-bootstrap-datetimepicker-directive.js b/angular-bootstrap-datetimepicker-directive.js index 9ba78ff..c5f5c90 100644 --- a/angular-bootstrap-datetimepicker-directive.js +++ b/angular-bootstrap-datetimepicker-directive.js @@ -4,19 +4,19 @@ angular .module('datetimepicker', []) .provider('datetimepicker', function () { - var default_options = {}; + var default_options = {}; - this.setOptions = function (options) { - default_options = options; - }; + this.setOptions = function (options) { + default_options = options; + }; - this.$get = function () { - return { - getOptions: function () { - return default_options; - } + this.$get = function () { + return { + getOptions: function () { + return default_options; + } + }; }; - }; }) .directive('datetimepicker', [ @@ -25,48 +25,50 @@ angular function ($timeout, datetimepicker) { - var default_options = datetimepicker.getOptions(); + var default_options = datetimepicker.getOptions(); - return { - require : '?ngModel', - restrict: 'AE', - scope : { - datetimepickerOptions: '@' - }, - link : function ($scope, $element, $attrs, ngModelCtrl) { - var passed_in_options = $scope.$eval($attrs.datetimepickerOptions); - var options = jQuery.extend({}, default_options, passed_in_options); + return { + require: '?ngModel', + restrict: 'AE', + scope: { + datetimepickerOptions: '@' + }, + link: function ($scope, $element, $attrs, ngModelCtrl) { + var passed_in_options = $scope.$eval($attrs.datetimepickerOptions); + var options = jQuery.extend({}, default_options, passed_in_options); - $element - .on('dp.change', function (e) { - if (ngModelCtrl) { - $timeout(function () { - ngModelCtrl.$setViewValue(e.target.value); - }); - } - }) - .datetimepicker(options); + $element + .on('dp.change', function (e) { + if (ngModelCtrl) { + $timeout(function () { + var target = $(e.target); + target = (target.is('input') || options.inline) ? target : target.find("input"); + ngModelCtrl.$setViewValue(target.val()); + }); + } + }) + .datetimepicker(options); - function setPickerValue() { - var date = options.defaultDate || null; + function setPickerValue() { + var date = options.defaultDate || null; - if (ngModelCtrl && ngModelCtrl.$viewValue) { - date = ngModelCtrl.$viewValue; - } + if (ngModelCtrl && ngModelCtrl.$viewValue) { + date = ngModelCtrl.$viewValue; + } - $element - .data('DateTimePicker') - .date(date); - } + $element + .data('DateTimePicker') + .date(date); + } - if (ngModelCtrl) { - ngModelCtrl.$render = function () { - setPickerValue(); - }; - } + if (ngModelCtrl) { + ngModelCtrl.$render = function () { + setPickerValue(); + }; + } - setPickerValue(); - } - }; + setPickerValue(); + } + }; } ]); \ No newline at end of file diff --git a/angular-bootstrap-datetimepicker-directive.min.js b/angular-bootstrap-datetimepicker-directive.min.js index 3199a08..60690ae 100644 --- a/angular-bootstrap-datetimepicker-directive.min.js +++ b/angular-bootstrap-datetimepicker-directive.min.js @@ -1 +1 @@ -"use strict";angular.module("datetimepicker",[]).provider("datetimepicker",function(){var default_options={};this.setOptions=function(options){default_options=options};this.$get=function(){return{getOptions:function(){return default_options}}}}).directive("datetimepicker",["$timeout","datetimepicker",function($timeout,datetimepicker){var default_options=datetimepicker.getOptions();return{require:"?ngModel",restrict:"AE",scope:{datetimepickerOptions:"@"},link:function($scope,$element,$attrs,ngModelCtrl){var passed_in_options=$scope.$eval($attrs.datetimepickerOptions);var options=jQuery.extend({},default_options,passed_in_options);$element.on("dp.change",function(e){if(ngModelCtrl){$timeout(function(){ngModelCtrl.$setViewValue(e.target.value)})}}).datetimepicker(options);function setPickerValue(){var date=options.defaultDate||null;if(ngModelCtrl&&ngModelCtrl.$viewValue){date=ngModelCtrl.$viewValue}$element.data("DateTimePicker").date(date)}if(ngModelCtrl){ngModelCtrl.$render=function(){setPickerValue()}}setPickerValue()}}}]); \ No newline at end of file +"use strict";angular.module("datetimepicker",[]).provider("datetimepicker",function(){var e={};this.setOptions=function(t){e=t},this.$get=function(){return{getOptions:function(){return e}}}}).directive("datetimepicker",["$timeout","datetimepicker",function(e,t){var i=t.getOptions();return{require:"?ngModel",restrict:"AE",scope:{datetimepickerOptions:"@"},link:function(t,n,r,a){function u(){var e=o.defaultDate||null;a&&a.$viewValue&&(e=a.$viewValue),n.data("DateTimePicker").date(e)}var c=t.$eval(r.datetimepickerOptions),o=jQuery.extend({},i,c);n.on("dp.change",function(t){a&&e(function(){var e=$(t.target);e=e.is("input")||o.inline?e:e.find("input"),a.$setViewValue(e.val())})}).datetimepicker(o),a&&(a.$render=function(){u()}),u()}}}]); \ No newline at end of file diff --git a/example.html b/example.html index 12e793e..ed9e785 100644 --- a/example.html +++ b/example.html @@ -206,6 +206,21 @@

+
+ + +
+
+ + + + +
+
+
+