From 1efcc1cccf66be41515d59443c26294fe8bc3831 Mon Sep 17 00:00:00 2001 From: Jesse Dhillon Date: Sat, 8 Nov 2014 18:46:21 +0100 Subject: [PATCH] fix(datepicker): format values received from external model changes When `ngModel.$render` receives a value updated externally (that is, not as a response to a datepicker event, but some other model update) it does not actually apply configured formatting of any kind. It is assumed that the value is a string, but if it is an instance of `Date` then it is implicitly cast to a string and the element's value is set to that. This fix corrects the behavior by parsing it and applying local filters before assiging the element's value. --- src/datepicker/datepicker.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/datepicker/datepicker.js b/src/datepicker/datepicker.js index 05784947d0..71daf677c1 100644 --- a/src/datepicker/datepicker.js +++ b/src/datepicker/datepicker.js @@ -546,9 +546,10 @@ function ($compile, $parse, $document, $position, dateFilter, dateParser, datepi // Outter change ngModel.$render = function() { - var date = ngModel.$viewValue ? dateFilter(ngModel.$viewValue, dateFormat) : ''; - element.val(date); - scope.date = parseDate( ngModel.$modelValue ); + var date = ngModel.$viewValue ? parseDate(ngModel.$viewValue) : null; + var display = date ? dateFilter(date, dateFormat) : ''; + element.val(display); + scope.date = date; }; var documentClickBind = function(event) {