Chrome on Android doesn't update input data bindings on keyboard input properly #5373
Description
Using Chrome on Android 4.2.1 (Nexus 4), I noticed a few bugs with regards to the live data binding to an input field:
#1) First ng-keyup and ng-keydown always return keyCode of 0. ng-keypress doesn't work at all on android.
#2) ng-model databinding doesn't update the data until either the keyboard is dropped, or the space or backspace key is pressed. Other keys don't update the data model.
#3) Bug #2 does not occur on other browsers (dolphin, firefox), but it does happen on other keyboards (swiftkey)
I created a bit of a hacky workaround, where I manually rebind the data on every ng-keyup.
link: (scope, element, attrs) ->
scope.keyup = ($event) ->
scope.fieldInfo.value = element.find("input").val()
Though, it can be easily tested & reproduced bug. Go on the angular site with a Nexus 4, and try the basic hello world example, and you'll see the data not updating until the keyboard is released / backspace or spacebar is pressed.