From 6b4e95ce23dded8787329cc0f394fe9178d5bc06 Mon Sep 17 00:00:00 2001 From: Robert Messerle Date: Mon, 1 Jun 2015 14:21:23 -0700 Subject: [PATCH] fix(autocomplete): only 2 messages will be displayed at any given time for autocomplete Closes #2785 --- .../autocomplete/js/autocompleteController.js | 22 +++++++++---------- .../autocomplete/js/autocompleteDirective.js | 2 +- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/components/autocomplete/js/autocompleteController.js b/src/components/autocomplete/js/autocompleteController.js index c1462f4c3bc..eebf60b7970 100644 --- a/src/components/autocomplete/js/autocompleteController.js +++ b/src/components/autocomplete/js/autocompleteController.js @@ -231,14 +231,14 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $timeout, $ event.preventDefault(); self.index = Math.min(self.index + 1, self.matches.length - 1); updateScroll(); - updateSelectionMessage(); + updateMessages(); break; case $mdConstant.KEY_CODE.UP_ARROW: if (self.loading) return; event.preventDefault(); self.index = self.index < 0 ? self.matches.length - 1 : Math.max(0, self.index - 1); updateScroll(); - updateSelectionMessage(); + updateMessages(); break; case $mdConstant.KEY_CODE.TAB: case $mdConstant.KEY_CODE.ENTER: @@ -334,18 +334,16 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $timeout, $ } function updateMessages () { - if (self.hidden) return; - switch (self.matches.length) { - case 0: return self.messages.splice(0); - case 1: return self.messages.push({ display: 'There is 1 match available.' }); - default: return self.messages.push({ display: 'There are ' - + self.matches.length - + ' matches available.' }); - } + self.messages = self.matches.length + ? [ getCountMessage(), getCurrentDisplayValue() ] + : []; } - function updateSelectionMessage () { - self.messages.push({ display: getCurrentDisplayValue() }); + function getCountMessage () { + switch (self.matches.length) { + case 1: return 'There is 1 match available.'; + default: return 'There are ' + self.matches.length + ' matches available.'; + } } function updateScroll () { diff --git a/src/components/autocomplete/js/autocompleteDirective.js b/src/components/autocomplete/js/autocompleteDirective.js index 1dbf9c0f8bc..54be1abc60a 100644 --- a/src/components/autocomplete/js/autocompleteDirective.js +++ b/src/components/autocomplete/js/autocompleteDirective.js @@ -166,7 +166,7 @@ function MdAutocomplete ($mdTheming, $mdUtil) { class="md-visually-hidden"\ role="status"\ aria-live="assertive">\ -

{{message.display}}

\ +

{{message}}

\ '; function getItemTemplate() {