diff --git a/src/accordion/accordion.js b/src/accordion/accordion.js index 8674f535a1..586314c9c6 100644 --- a/src/accordion/accordion.js +++ b/src/accordion/accordion.js @@ -124,11 +124,21 @@ angular.module('ui.bootstrap.accordion', ['ui.bootstrap.collapse']) link: function(scope, element, attrs, controller) { scope.$watch(function() { return controller[attrs.uibAccordionTransclude]; }, function(heading) { if (heading) { - var elem = angular.element(element[0].querySelector('[uib-accordion-header]')); + var elem = angular.element(element[0].querySelector(getHeaderSelectors())); elem.html(''); elem.append(heading); } }); } }; + + function getHeaderSelectors() { + return 'uib-accordion-header,' + + 'data-uib-accordion-header,' + + 'x-uib-accordion-header,' + + 'uib\\:accordion-header,' + + '[uib-accordion-header],' + + '[data-uib-accordion-header],' + + '[x-uib-accordion-header]'; + } }); diff --git a/src/accordion/test/accordion.spec.js b/src/accordion/test/accordion.spec.js index 9916f1e045..2cae4bd4da 100644 --- a/src/accordion/test/accordion.spec.js +++ b/src/accordion/test/accordion.spec.js @@ -610,6 +610,17 @@ describe('uib-accordion', function() { }); }); + describe('uib-accordion-heading attribute, with custom template', function() { + it('should transclude heading to a template using data-uib-accordion-header', inject(function($templateCache) { + $templateCache.put('foo/bar.html', '
'); + + element = $compile('