From 47e412ec0bab44ba00538f2ae2ba2df97180a738 Mon Sep 17 00:00:00 2001 From: Igor Bulovski Date: Wed, 24 Feb 2016 01:05:51 +0100 Subject: [PATCH] fix(datepicker): fix popup updateOn: default support - Fix support for ng-model-options with `updateOn: blur` Closes #5529 --- src/datepicker/datepicker.js | 5 +++++ src/datepicker/test/datepicker.spec.js | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/datepicker/datepicker.js b/src/datepicker/datepicker.js index 6cfbda34d2..c4c8b7c3a3 100644 --- a/src/datepicker/datepicker.js +++ b/src/datepicker/datepicker.js @@ -836,6 +836,11 @@ function($scope, $element, $attrs, $compile, $log, $parse, $window, $document, $ popupEl = angular.element('
'); $scope.ngModelOptions = angular.copy(ngModelOptions); $scope.ngModelOptions.timezone = null; + if ($scope.ngModelOptions.updateOnDefault === true) { + $scope.ngModelOptions.updateOn = $scope.ngModelOptions.updateOn ? + $scope.ngModelOptions.updateOn + ' default' : 'default'; + } + popupEl.attr({ 'ng-model': 'date', 'ng-model-options': 'ngModelOptions', diff --git a/src/datepicker/test/datepicker.spec.js b/src/datepicker/test/datepicker.spec.js index 67169628f9..f59f86e053 100644 --- a/src/datepicker/test/datepicker.spec.js +++ b/src/datepicker/test/datepicker.spec.js @@ -3645,6 +3645,30 @@ describe('datepicker', function() { }); }); + describe('works with ngModelOptions updateOn : "default"', function() { + var $timeout, wrapElement; + + beforeEach(inject(function(_$document_, _$sniffer_, _$timeout_) { + $document = _$document_; + $timeout = _$timeout_; + $rootScope.isopen = true; + $rootScope.date = new Date('2010-09-30T10:00:00.000Z'); + wrapElement = $compile('
')($rootScope); + $rootScope.$digest(); + assignElements(wrapElement); + })); + + it('should close the popup and update the input when a day is clicked', function() { + clickOption(17); + assignElements(wrapElement); + expect(dropdownEl.length).toBe(0); + expect(inputEl.val()).toBe('2010-09-15'); + expect($rootScope.date).toEqual(new Date('2010-09-15T10:00:00.000Z')); + }); + }); + describe('attribute `datepickerOptions`', function() { describe('show-weeks', function() { beforeEach(function() {