Skip to content
This repository was archived by the owner on May 29, 2019. It is now read-only.

Commit 2c2dba6

Browse files
hamfastgamgeewesleycho
authored andcommitted
fix(datepicker): Make datepicker respect dateFormat inside ng-if
Makes the datepicker respect dateFormat inside ng-if.
1 parent b5f220f commit 2c2dba6

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

Diff for: src/datepicker/datepicker.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -554,10 +554,12 @@ function ($compile, $parse, $document, $position, dateFilter, dateParser, datepi
554554
});
555555

556556
// Outer change
557-
ngModel.$render = function() {
558-
var date = ngModel.$viewValue ? dateFilter(parseDate(ngModel.$viewValue), dateFormat) : '';
559-
element.val(date);
560-
scope.date = parseDate( ngModel.$modelValue );
557+
ngModel.$render = function () {
558+
if (dateFormat) {
559+
var date = ngModel.$viewValue ? dateFilter(parseDate(ngModel.$viewValue), dateFormat) : '';
560+
element.val(date);
561+
scope.date = parseDate( ngModel.$modelValue );
562+
}
561563
};
562564

563565
var documentClickBind = function(event) {

Diff for: src/datepicker/test/datepicker.spec.js

+19
Original file line numberDiff line numberDiff line change
@@ -1103,6 +1103,25 @@ describe('datepicker directive', function () {
11031103

11041104
});
11051105

1106+
describe('setting datepickerPopupConfig inside ng-if', function() {
1107+
var originalConfig = {};
1108+
beforeEach(inject(function (datepickerPopupConfig) {
1109+
angular.extend(originalConfig, datepickerPopupConfig);
1110+
datepickerPopupConfig.datepickerPopup = 'MM-dd-yyyy';
1111+
1112+
element = $compile('<div><div ng-if="true"><input ng-model="date" datepicker-popup></div></div>')($rootScope);
1113+
$rootScope.$digest();
1114+
}));
1115+
afterEach(inject(function (datepickerPopupConfig) {
1116+
// return it to the original state
1117+
angular.extend(datepickerPopupConfig, originalConfig);
1118+
}));
1119+
1120+
it('changes date format', function () {
1121+
expect(element.find('input').val()).toEqual('09-30-2010');
1122+
});
1123+
});
1124+
11061125
describe('as popup', function () {
11071126
var inputEl, dropdownEl, $document, $sniffer;
11081127

0 commit comments

Comments
 (0)