@@ -36,7 +36,7 @@ angular.module('ui.date', [])
36
36
showing = true ;
37
37
controller . $setViewValue ( element . datepicker ( "getDate" ) ) ;
38
38
_onSelect ( value , picker ) ;
39
- element . blur ( ) ;
39
+ // element.blur();
40
40
} ) ;
41
41
} ;
42
42
opts . beforeShow = function ( ) {
@@ -56,7 +56,7 @@ angular.module('ui.date', [])
56
56
57
57
// Update the date picker when the model changes
58
58
controller . $render = function ( ) {
59
- var date = controller . $viewValue ;
59
+ var date = controller . $modelValue ;
60
60
if ( angular . isDefined ( date ) && date !== null && ! angular . isDate ( date ) ) {
61
61
throw new Error ( 'ng-Model value must be a Date object - currently it is a ' + typeof date + ' - use ui-date-format to convert it from a string' ) ;
62
62
}
@@ -88,7 +88,7 @@ angular.module('ui.date', [])
88
88
var dateFormat = attrs . uiDateFormat || uiDateFormatConfig ;
89
89
if ( dateFormat ) {
90
90
// Use the datepicker with the attribute value as the dateFormat string to convert to and from a string
91
- modelCtrl . $formatters . push ( function ( value ) {
91
+ modelCtrl . $formatters . unshift ( function ( value ) {
92
92
if ( angular . isString ( value ) ) {
93
93
return jQuery . datepicker . parseDate ( dateFormat , value ) ;
94
94
}
@@ -102,9 +102,10 @@ angular.module('ui.date', [])
102
102
} ) ;
103
103
} else {
104
104
// Default to ISO formatting
105
- modelCtrl . $formatters . push ( function ( value ) {
105
+ modelCtrl . $formatters . unshift ( function ( value ) {
106
106
if ( angular . isString ( value ) ) {
107
- return new Date ( value ) ;
107
+ var isoDate = new Date ( value ) ;
108
+ return isNaN ( isoDate . getTime ( ) ) ? null : isoDate ;
108
109
}
109
110
return null ;
110
111
} ) ;
0 commit comments