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

Commit bf30898

Browse files
Swiippkozlowski-opensource
authored andcommitted
fix(datepicker): compatibility with angular 1.1.5 and no jquery
Closes #760
1 parent b08e993 commit bf30898

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

src/datepicker/datepicker.js

+11-4
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,8 @@ function ($compile, $parse, $document, $position, dateFilter, datepickerPopupCon
290290
ngModel.$parsers.push(parseDate);
291291

292292
var getIsOpen, setIsOpen;
293-
if ( attrs.open ) {
294-
getIsOpen = $parse(attrs.open);
293+
if ( attrs.isOpen ) {
294+
getIsOpen = $parse(attrs.isOpen);
295295
setIsOpen = getIsOpen.assign;
296296

297297
originalScope.$watch(getIsOpen, function updateOpen(value) {
@@ -386,15 +386,22 @@ function ($compile, $parse, $document, $position, dateFilter, datepickerPopupCon
386386
scope.position.top = scope.position.top + element.prop('offsetHeight');
387387
}
388388

389+
var documentBindingInitialized = false, elementFocusInitialized = false;
389390
scope.$watch('isOpen', function(value) {
390391
if (value) {
391392
updatePosition();
392393
$document.bind('click', documentClickBind);
393-
element.unbind('focus', elementFocusBind);
394+
if(elementFocusInitialized) {
395+
element.unbind('focus', elementFocusBind);
396+
}
394397
element[0].focus();
398+
documentBindingInitialized = true;
395399
} else {
396-
$document.unbind('click', documentClickBind);
400+
if(documentBindingInitialized) {
401+
$document.unbind('click', documentClickBind);
402+
}
397403
element.bind('focus', elementFocusBind);
404+
elementFocusInitialized = true;
398405
}
399406

400407
if ( setIsOpen ) {

src/datepicker/docs/demo.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
</div>
77

88
<div class="form-horizontal">
9-
<input type="text" datepicker-popup="dd-MMMM-yyyy" ng-model="dt" open="opened" min="minDate" max="'2015-06-22'" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" ng-required="true" />
9+
<input type="text" datepicker-popup="dd-MMMM-yyyy" ng-model="dt" is-open="opened" min="minDate" max="'2015-06-22'" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" ng-required="true" />
1010
<button class="btn" ng-click="open()"><i class="icon-calendar"></i></button>
1111
</div>
1212

src/datepicker/test/datepicker.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1029,7 +1029,7 @@ describe('datepicker directive', function () {
10291029
describe('toggles programatically by `open` attribute', function () {
10301030
beforeEach(inject(function() {
10311031
$rootScope.open = true;
1032-
var wrapElement = $compile('<div><input ng-model="date" datepicker-popup open="open"><div>')($rootScope);
1032+
var wrapElement = $compile('<div><input ng-model="date" datepicker-popup is-open="open"><div>')($rootScope);
10331033
$rootScope.$digest();
10341034
assignElements(wrapElement);
10351035
}));

0 commit comments

Comments
 (0)