From 4a001a0c33726ce7a0f46b7a706d38994d88cd04 Mon Sep 17 00:00:00 2001 From: Wesley Cho Date: Wed, 16 Mar 2016 19:25:51 -0700 Subject: [PATCH] fix(datepicker): dereference date initialization - Dereference the date set to active date to prevent model automatically updating from equal reference --- src/datepicker/datepicker.js | 4 +++- src/datepicker/test/datepicker.spec.js | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) 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');