@@ -965,11 +965,6 @@ uis.directive('uiSelect',
965
965
// instead of creating a hackish DOM element:
966
966
var transcluded = angular . element ( '<div>' ) . append ( clone ) ;
967
967
968
- var transcludedHeader = transcluded . querySelectorAll ( '.ui-select-header' ) ;
969
- transcludedHeader . removeAttr ( 'ui-select-header' ) ; //To avoid loop in case directive as attr
970
- transcludedHeader . removeAttr ( 'data-ui-select-header' ) ; // Properly handle HTML5 data-attributes
971
- element . querySelectorAll ( '.ui-select-header' ) . replaceWith ( transcludedHeader ) ;
972
-
973
968
var transcludedMatch = transcluded . querySelectorAll ( '.ui-select-match' ) ;
974
969
transcludedMatch . removeAttr ( 'ui-select-match' ) ; //To avoid loop in case directive as attr
975
970
transcludedMatch . removeAttr ( 'data-ui-select-match' ) ; // Properly handle HTML5 data-attributes
@@ -986,10 +981,21 @@ uis.directive('uiSelect',
986
981
}
987
982
element . querySelectorAll ( '.ui-select-choices' ) . replaceWith ( transcludedChoices ) ;
988
983
984
+ var transcludedHeader = transcluded . querySelectorAll ( '.ui-select-header' ) ;
985
+ if ( transcludedHeader && transcludedHeader . length ) {
986
+ transcludedHeader . removeAttr ( 'ui-select-header' ) ; //To avoid loop in case directive as attr
987
+ transcludedHeader . removeAttr ( 'data-ui-select-header' ) ; // Properly handle HTML5 data-attributes
988
+ $timeout ( function ( ) {
989
+ transcludedChoices . prepend ( transcludedHeader ) ;
990
+ } ) ;
991
+ }
992
+
989
993
var transcludedFooter = transcluded . querySelectorAll ( '.ui-select-footer' ) ;
990
- transcludedFooter . removeAttr ( 'ui-select-footer' ) ; //To avoid loop in case directive as attr
991
- transcludedFooter . removeAttr ( 'data-ui-select-footer' ) ; // Properly handle HTML5 data-attributes
992
- element . querySelectorAll ( '.ui-select-footer' ) . replaceWith ( transcludedFooter ) ;
994
+ if ( transcludedFooter && transcludedFooter . length ) {
995
+ transcludedFooter . removeAttr ( 'ui-select-footer' ) ; //To avoid loop in case directive as attr
996
+ transcludedFooter . removeAttr ( 'data-ui-select-footer' ) ; // Properly handle HTML5 data-attributes
997
+ transcludedChoices . append ( transcludedFooter ) ;
998
+ }
993
999
} ) ;
994
1000
995
1001
// Support for appending the select field to the body when its open
@@ -1848,15 +1854,15 @@ uis.directive('uiSelectSort', ['$timeout', 'uiSelectConfig', 'uiSelectMinErr', f
1848
1854
1849
1855
uis . directive ( 'uiSelectHeader' , function ( ) {
1850
1856
return {
1851
- template : '<div class="ui-select-header" ng-transclude></div >' ,
1857
+ template : '<li class="ui-select-header" ng-transclude></li >' ,
1852
1858
restrict : 'EA' ,
1853
1859
transclude : true ,
1854
1860
replace : true
1855
1861
} ;
1856
1862
} ) ;
1857
1863
uis . directive ( 'uiSelectFooter' , function ( ) {
1858
1864
return {
1859
- template : '<div class="ui-select-footer" ng-transclude></div >' ,
1865
+ template : '<li class="ui-select-footer" ng-transclude></li >' ,
1860
1866
restrict : 'EA' ,
1861
1867
transclude : true ,
1862
1868
replace : true
0 commit comments