diff --git a/src/uiSelectController.js b/src/uiSelectController.js index 38c4ba0b9..481fbb2e8 100644 --- a/src/uiSelectController.js +++ b/src/uiSelectController.js @@ -123,15 +123,29 @@ uis.controller('uiSelectCtrl', } var container = $element.querySelectorAll('.ui-select-choices-content'); - if (ctrl.$animate && ctrl.$animate.on && ctrl.$animate.enabled(container[0])) { - ctrl.$animate.on('enter', container[0], function (elem, phase) { - if (phase === 'close') { + var searchInput = $element.querySelectorAll('.ui-select-search'); + if (ctrl.$animate && ctrl.$animate.enabled(container[0])) { + var animateHandler = function(elem, phase) { + if (phase === 'start' && ctrl.items.length === 0) { // Only focus input after the animation has finished + ctrl.$animate.off('removeClass', searchInput[0], animateHandler); + $timeout(function () { + ctrl.focusSearchInput(initSearchValue); + }); + } else if (phase === 'close') { + // Only focus input after the animation has finished + ctrl.$animate.off('enter', container[0], animateHandler); $timeout(function () { ctrl.focusSearchInput(initSearchValue); }); } - }); + }; + + if (ctrl.items.length > 0) { + ctrl.$animate.on('enter', container[0], animateHandler); + } else { + ctrl.$animate.on('removeClass', searchInput[0], animateHandler); + } } else { $timeout(function () { ctrl.focusSearchInput(initSearchValue);