-
Notifications
You must be signed in to change notification settings - Fork 3.4k
md-autocomplete: unable to click/focus on anything after a click on the "clear" button #3287
Comments
This issue also occurs if you select an item, and then backspace to delete the input to an empty state and then click away |
+1 |
+1 |
1 similar comment
+1 |
+1 freezing the chrome tab. |
To add to this - this seems to occur on the third consecutive click, if you use arrow keys + enter to select this doesn't occur. If you click the autocomplete, click a selection, then click clear it locks up. I've recorded a video demonstrating here - http://screencast.com/t/NYkj14IYG9F When we say "locks up" what is actually happening is that the |
in 0.10.0 I commented out line 12469 if angular-material and the function at 12642 And it seems to be working for me.. Not sure what horrible thing I'm missing out on without the element 'hiding', but at least my app doesn't lock up 😄 |
+1 |
same here. |
+1 |
1 similar comment
+1 |
+1 temporary css workaround.md-scroll-mask
position: initial |
+1 |
+1 |
👍 serious issue mate, It really affected our website. Need a quick fix as soon as possible! |
This is resolved in master and will be fixed in 0.10.1 |
Thanks @robertmesserle! |
Work fine here, thats ok! |
+1 |
I am unable to resolve this issue with the 0.10.1-rc5 version available of angular material. Is it resolved?Please tell me what is the fix to get it working? |
@prerna12 try 0.10.1. It was just released yesterday and seems to have fixed it for me. |
With 0.10.1, when I select an item in md-autocomplete and click on [x] next to it, that browser tab freezes. |
Same issue of browser tab looking like its stuck when using $state.go() inside callback of md-selected-item-change. The $timeout fix worked for me as well. The strange thing is that I'm doing this ($state.go() inside the callback) in a different state in the same site without ill effect. Using version 1.0.5 and Chrome version 48.0.2564.116. |
Still bug in my version 1.0.5 (chrome). When I have autocomplete in dialog, I clear result, select new one, after dialog is minimised/closed it freezes chrome by adding overlay mask. Work our is adding $mdDialog.finally(function() {
angular.element('.md-scroll-mask').hide();
}); |
I have also noticed that when bug occurs the scroll on the body is frozen as well (body element position is set to fixed, and its not removed when dialog is closed). As a workaround apart from removing md-scroll-mask I am setting position: inherit on the body element. |
last update from me. I now use a cleaner way for this bug. Angular material provides service called $mdUtil and I when my dialog closes I run $mdUtil.enableScrolling(); |
Hello! |
Also seeing this on 1.0.5. I have an |
+1 seeing this in 1.0.6 when used inside md-chips and location changes when chips are added or removed but the mask remains on location change blocking all user interaction. Changing location after digest cycle completes (i.e is wrapping it in $timeout(fn , 0) solves this. IMO this should not be necessary as this is simply related to focusing the element. |
+1 seeing this in 1.0.6 with $state.go. |
@vshanbha fixes the problem, when i search again the autocomplete, i lose the drop down ... like @S8nsick66 commented |
@S8nsick66 , @lakstap Have you checked the comment from @jinyangzhen . Quoting it here. "in my case, the dropdown of md-autocomplete is gone after the state transition. I have to asyn the $state.go in timeout block in order to workaround this issue." |
Thank you @vshanbha, that works. setTimeout(
function(){
$state.go(state.url, state.params, {
location: true,
reload: true,
inherit: true
})
}, 50); This was my first attempt, it works too. var url = $state.href(state.name, state.params, {absolute: true});
$window.location.href = url; |
+1 Result ==> the app freezes, should refresh the page to make it work again Hope this can help fix the problem |
Temp solution : Put this lines into your function which hide the md-autocomplete //Patch for autocomplete which doesn't remove
angular.element('body')[0].style = '';
if(angular.element('.md-scroll-mask')[0])
angular.element('.md-scroll-mask')[0].remove(); |
what about this? |
Got same problem with Tried with versions: 1.0.9, 1.0.10, 1.1.1 |
What about just hiding the button with css? Seems to be working properly without it there and then you can create a custom button to set the value of the autocomplete back to blank.
|
Looks like this issue fixed in latest version of angular material for desktops but not for touch devices |
Where we at with this? |
I'm using v1.1.4 and I can reproduce this on Safari as well as Chrome (with or without the floating label). Workaround - using CSS: .md-scroll-mask {z-index:0!important} |
I found the culprit: After the destruction of the autocomplete instance, its queued promises might still be running in the background. Once the promise gets finally resolved, The often mentioned fix to manually delete function onResultsRetrieved(matches) {
cache[term] = matches;
// Just cache the results if the request is now outdated.
// The request becomes outdated, when the new searchText has changed during the result fetching.
if ((searchText || '') !== ($scope.searchText || '')) {
return;
}
// TODO: Also return if the instance was abandoned or destroyed
handleResults(matches);
} The proper fix must detect if the original instance was abandoned or destroyed and return, similar if searchText was empty. In my case I was able to solve this by simply emptying searchText on --- angular-material.js
+++ angular-material-clearSearchText.js
@@ -25930,6 +25930,7 @@
* Removes any events or leftover elements created by this controller
*/
function cleanup () {
+ $scope.searchText = '';
if (!ctrl.hidden) {
$mdUtil.enableScrolling();
} |
Steps to reproduce the bug :
I'm on the master and my browser is Chrome v43
The text was updated successfully, but these errors were encountered: