diff --git a/src/datepicker/datepicker.js b/src/datepicker/datepicker.js index e949ead335..f55bc0c0b2 100644 --- a/src/datepicker/datepicker.js +++ b/src/datepicker/datepicker.js @@ -271,7 +271,9 @@ angular.module('ui.bootstrap.datepicker', ['ui.bootstrap.dateparser', 'ui.bootst ngModelCtrl = ngModelCtrl_; ngModelOptions = ngModelCtrl_.$options || datepickerConfig.ngModelOptions; - this.activeDate = ngModelCtrl.$modelValue || new Date(); + this.activeDate = ngModelCtrl.$modelValue ? + dateParser.fromTimezone(new Date(ngModelCtrl.$modelValue), ngModelOptions.timezone) : + dateParser.fromTimezone(new Date(), ngModelOptions.timezone); ngModelCtrl.$render = function() { self.render(); diff --git a/src/datepicker/test/datepicker.spec.js b/src/datepicker/test/datepicker.spec.js index 029dfb9230..76f55911d3 100644 --- a/src/datepicker/test/datepicker.spec.js +++ b/src/datepicker/test/datepicker.spec.js @@ -1828,6 +1828,13 @@ describe('datepicker', function() { expect(getTitle()).toBe('January 2014'); }); + it('should not change model when going to next month - #5441', function() { + $rootScope.date = new Date('January 30, 2014'); + $rootScope.$digest(); + clickNextButton(); + expect($rootScope.date).toEqual(new Date('January 30, 2014')); + }); + describe('when `model` changes', function() { function testCalendar() { expect(getTitle()).toBe('November 2005');