diff --git a/src/datepicker/datepicker.js b/src/datepicker/datepicker.js index f96384aaa9..1849f2dcc8 100644 --- a/src/datepicker/datepicker.js +++ b/src/datepicker/datepicker.js @@ -337,9 +337,11 @@ function ($compile, $parse, $document, $position, dateFilter, datepickerPopupCon 'ng-model': 'date', 'ng-change': 'dateSelection()' }); - var datepickerEl = angular.element(popupEl.children()[0]); + var datepickerEl = angular.element(popupEl.children()[0]), + datepickerOptions = {}; if (attrs.datepickerOptions) { - datepickerEl.attr(angular.extend({}, originalScope.$eval(attrs.datepickerOptions))); + datepickerOptions = originalScope.$eval(attrs.datepickerOptions); + datepickerEl.attr(angular.extend({}, datepickerOptions)); } // TODO: reverse from dateFilter string to Date object @@ -405,7 +407,7 @@ function ($compile, $parse, $document, $position, dateFilter, datepickerPopupCon if (attrs.showWeeks) { addWatchableAttribute(attrs.showWeeks, 'showWeeks', 'show-weeks'); } else { - scope.showWeeks = datepickerConfig.showWeeks; + scope.showWeeks = 'show-weeks' in datepickerOptions ? datepickerOptions['show-weeks'] : datepickerConfig.showWeeks; datepickerEl.attr('show-weeks', 'showWeeks'); } if (attrs.dateDisabled) { diff --git a/src/datepicker/test/datepicker.spec.js b/src/datepicker/test/datepicker.spec.js index 8b63c9bd26..3a3717631c 100644 --- a/src/datepicker/test/datepicker.spec.js +++ b/src/datepicker/test/datepicker.spec.js @@ -1061,6 +1061,27 @@ describe('datepicker directive', function () { }); + describe('attribute `datepickerOptions`', function () { + var weekHeader, weekElement; + beforeEach(function() { + $rootScope.opts = { + 'show-weeks': false + }; + var wrapElement = $compile('
')($rootScope); + $rootScope.$digest(); + assignElements(wrapElement); + + weekHeader = getLabelsRow().find('th').eq(0); + weekElement = element.find('tbody').find('tr').eq(1).find('td').eq(0); + }); + + it('hides week numbers based on variable', function() { + expect(weekHeader.text()).toEqual('#'); + expect(weekHeader).toBeHidden(); + expect(weekElement).toBeHidden(); + }); + }); + describe('toggles programatically by `open` attribute', function () { beforeEach(inject(function() { $rootScope.open = true;