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

Commit e58cd3f

Browse files
committed
added uiSelectFooter and uiSelectHeader directives.
updated uiSelect directive's transclusion to include ui-select-header and ui-select-footer elements
1 parent 4467b82 commit e58cd3f

File tree

3 files changed

+32
-0
lines changed

3 files changed

+32
-0
lines changed

src/uiSelectDirective.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,22 @@ uis.directive('uiSelect',
192192
throw uiSelectMinErr('transcluded', "Expected 1 .ui-select-choices but got '{0}'.", transcludedChoices.length);
193193
}
194194
element.querySelectorAll('.ui-select-choices').replaceWith(transcludedChoices);
195+
196+
var transcludedHeader = transcluded.querySelectorAll('.ui-select-header');
197+
if(transcludedHeader && transcludedHeader.length){
198+
transcludedHeader.removeAttr('ui-select-header'); //To avoid loop in case directive as attr
199+
transcludedHeader.removeAttr('data-ui-select-header'); // Properly handle HTML5 data-attributes
200+
$timeout(function(){
201+
transcludedChoices.prepend(transcludedHeader);
202+
});
203+
}
204+
205+
var transcludedFooter = transcluded.querySelectorAll('.ui-select-footer');
206+
if(transcludedFooter && transcludedFooter.length){
207+
transcludedFooter.removeAttr('ui-select-footer'); //To avoid loop in case directive as attr
208+
transcludedFooter.removeAttr('data-ui-select-footer'); // Properly handle HTML5 data-attributes
209+
transcludedChoices.append(transcludedFooter);
210+
}
195211
});
196212

197213
// Support for appending the select field to the body when its open

src/uiSelectFooterDirective.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
uis.directive('uiSelectFooter', function(){
2+
return {
3+
template: '<li class="ui-select-footer" ng-transclude></li>',
4+
restrict: 'EA',
5+
transclude: true,
6+
replace: true
7+
};
8+
});

src/uiSelectHeaderDirective.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
uis.directive('uiSelectHeader', function(){
2+
return {
3+
template: '<li class="ui-select-header" ng-transclude></li>',
4+
restrict: 'EA',
5+
transclude: true,
6+
replace: true
7+
};
8+
});

0 commit comments

Comments
 (0)