-
Notifications
You must be signed in to change notification settings - Fork 27.3k
fix(input): update $viewValue when cleared #14772
Conversation
0bf2e0a to
e8d890f
Compare
Narretz
commented
Jun 14, 2016
Cool! I believe writing a test is difficult because we can't click the clear button?
2445f95 to
1da5563
Compare
wesleycho
commented
Jun 14, 2016
Yeah - fussing around with this a bit to get the right condition currently, but I think the right fix might be attainable here.
1da5563 to
316ba23
Compare
wesleycho
commented
Jun 14, 2016
This is a little tough - so falsy model changes will convert to the empty string, so this potentially breaks some behavior. Any ideas on good workarounds for that situation?
6273af0 to
d997158
Compare
src/ng/directive/input.js
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why only text inputs? Won't types such as number have the same issue?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like you're correct - I assumed it would have the spinner, but apparently not.
d997158 to
2ee9eed
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it possible that the validity changed but the value did not (similar to the value === '' && ctrl.$$hasNativeValidators check in listener)? Although I'm not seeing how that would have been handled previously either (in the !hasEvent('input') case)...
2ee9eed to
ba63651
Compare
src/ng/directive/input.js
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we even care about the type for setting the initial oldVal though? I'd think we'd always want to setup the oldVal if msieInput is true...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't that trigger a potentially unnecessary DOM access though? That is likely more expensive than this check I think. I originally had it just accessing the value, I'd be fine changing it back.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we keep it I think it should be part of the msieInput condition, not this setup condition.
But I'd think element.val() is cheap enough it doesn't matter.
wesleycho
commented
Jun 14, 2016
|
There are some complicated scenarios I'm having trouble figuring out a good solution to. Here is an incomplete table:
|
- Fix when user clicks clear button in an input element in IE, $viewValue not being correctly updated
ba63651 to
2feeed6
Compare
gkalpak
commented
Jun 15, 2016
Wouldn't it be easier to just add an extra listener on IEs:
element.on('??mousedown/mouseup/click??', function(event) { deferListener(event, this, this.value); });
Narretz
commented
Oct 7, 2016
@wesleycho Do you still want to work on this?
wesleycho
commented
Oct 7, 2016
Don't have the bandwidth anymore :( .
blemaire
commented
Jun 8, 2018
What's the status on this issue (not doubt i'm not the only one encountering this)
Thanks
gkalpak
commented
Jun 8, 2018
It has been abandoned (afaict) 😁
If anyone wants to take it over, we will be more than happy to offer guidance and reviews, but I don't think we have the resources to take it over, given that we have less than a month of active feature development before entering LTS.
This should fix #11193.