Unsere Angular.js Web App friert manchmal auf iOS8 Safari ein. Wenn dieses Problem auftritt, wird der ng-Klick-Rückruf nicht ausgelöst. Wenn Sie ng-click mit einem normalen Javascript onclick ersetzen, würde es funktionieren. In Chrome auf iOS8-Geräten ist dies nicht der Fall.Angular.js Mobile Browser App friert auf iOS 8 ein Safari
Hat jemand anderes dieses Problem auf iOS8 Safari bemerkt oder hat es eine Lösung dafür?
Diese einfache Ansicht friert manchmal auf iOS8 Safari ein. Das Einfrieren tritt normalerweise auf, wenn Sie den Tab geöffnet haben, zu anderen Tabs im Browser wechseln oder vielleicht die Browser-Erfahrung verlassen und später wiederkommen. In diesem Beispiel, wenn die Ansicht beim Antippen der Links einfriert, wird tapCount nicht erhöht. Je komplizierter die Ansicht, desto leichter wird es einzufrieren. In diesem Beispiel würde der Browser für ein paar Sekunden einfrieren, wenn ich schnell auf die Links klicke. Gewöhnlich dauert das Einfrieren bei wirklich komplizierten Ansichten länger.
var app = angular.module('myApp', []);
app.controller('freezeCtrl', function($scope) {
$scope['tapCount'] = 0;
$scope['dummyItems'] = [];
for(var i = 0; i < 15; i++) {
var anItem = {'id': i};
($scope['dummyItems']).push(anItem);
}
$scope['updateTapCount'] = function() {
$scope.tapCount += 1;
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js"></script>
<div ng-app="myApp">
<div ng-controller="freezeCtrl">
<p>Tap Count = {{tapCount}}</p>
<ul>
<li ng-repeat="item in dummyItems" bindonce>
<p>This is a dummy item #{{item.id}}</p>
</li>
</ul>
<div>
<button ng-click="updateTapCount()">Button 1</button>
<button ng-click="updateTapCount()">Button 2</button>
</div>
</div>
</div>
Können Sie ein Beispiel für die einfachste App posten, wenn Sie dieses Verhalten sehen? – xpereta
Hallo Xpereta, ich habe ein sehr einfaches Beispiel hinzugefügt, wo ich in der Lage gewesen bin, das Einfrieren für eine Minute oder mehr zu wiederholen. –