diff --git a/src/uiSelectHeaderGroupSelectableDirective.js b/src/uiSelectHeaderGroupSelectableDirective.js index 826b7e08d..9615d72cb 100644 --- a/src/uiSelectHeaderGroupSelectableDirective.js +++ b/src/uiSelectHeaderGroupSelectableDirective.js @@ -20,32 +20,36 @@ uis.directive('uiSelectHeaderGroupSelectable', ['$timeout', function($timeout) { if ($select.multiple && $select.groups) { return $element.querySelectorAll('.ui-select-choices-group-label'); } else { - console.error('Use uiSelectHeaderGroupSelectable with no multiple uiSelect or without groupBy'); + if(isEnabled()){ + console.error('Use uiSelectHeaderGroupSelectable with no multiple uiSelect or without groupBy'); + } return []; } } function enableClick() { if (isEnabled()) { - angular.forEach(getElements(), function(e) { - var element = angular.element(e); + $timeout(function() { + angular.forEach(getElements(), function (e) { + var element = angular.element(e); - // Check the onClick event is not already listen - if (!element.hasClass('ui-select-header-group-selectable')) { - element.addClass('ui-select-header-group-selectable'); + // Check the onClick event is not already listen + if (element.text() && !element.hasClass('ui-select-header-group-selectable')) { + element.addClass('ui-select-header-group-selectable'); - element.on('click', function () { - if (isEnabled()) { - var group = $select.findGroupByName(element.text(), true); + element.on('click', function () { + if (isEnabled()) { + var group = $select.findGroupByName(element.text(), true); - angular.forEach(group.items, function(item) { - $timeout(function() { - $select.select(item, false, ' '); + angular.forEach(group.items, function (item) { + $timeout(function () { + $select.select(item, false, ' '); + }); }); - }); - } - }); - } + } + }); + } + }); }); } } @@ -69,9 +73,8 @@ uis.directive('uiSelectHeaderGroupSelectable', ['$timeout', function($timeout) { } }); - $scope.$watch('$select.groups', enableClick); $scope.$watch(function() { - return $select.selected && $select.selected.length ? $select.selected.length : -1; + return $select.groups && $select.groups.length ? $select.groups.length : -1; }, enableClick); } };