I've implemented a html5 webapp using jquery-mobile, angularjs and the jqm angular adapter.
On android devices using the default android browser (chrome works fine!) I randomly experience errors in the jqm file like "# has no method 'addClass' or 'jqmEnhanceable'. It is alway reproducible by reloading the site several times.
Debugging turned out that during the angular initialization proceess, specifically before $compile is called on the document, the adapter calls .page() on all divs annotated with data-role="page".
This causes lots of jquery mobile widgets to be created, i.e. lots of "load" is prodcuded. The errors always occur during the .page() call, but the number of pages that get processed before the error occurs varies randomly and sometimes it works completely.
To me it looks like the browser "forgets" jquery or jquery mobile methods at some point in time. Does any of you made similar observations? Are there known issues with the android default browser?
The issue is also described here.
Thanks a lot in advance!! Norman
This is not a complete answer but may help somebody with similar problems.
My problem was occuring after touching an ng-click on a list element in a jQuery mobile pop-up. The $scope function called by the ng-click had two jobs: 1. Set a value in $scope which is the ng-model for the field - the popup is activated by clicking in that field. 2. Close the pop-up.
So the updated field was behind the popup at the time angular updated the view.
The solution was to re-order the code in the function so that the popup close was called first, and the Angular model updated second.
This problem was occuring on one out of my two android test devices. The slightly older device (Samsung tablet, Android 3.1, browser version 3.1-UEKME) had the problem, the newer device (HTC phone, Android 4.0.3, browser version 4.0.2213303110.348012) was always OK - this could be because bugs have been eliminated in later releases.