我们的Angular.js网络应用有时在iOS8 Safari上会冻结。当出现此问题时,ng-click回调不会被触发。如果您将ng-click替换为常规的javascript onclick,它会起作用。它不会在iOS8设备的Chrome中发生。
有没有其他人在iOS8 Safari上注意到这个问题或者有解决方法?
这个简单的视图有时会在iOS8 Safari上冻结。冻结通常发生在您打开标签页、转到浏览器上的其他标签页或者离开浏览器体验后再回来。在这个例子中,当视图在点击链接时冻结时,tapCount不会增加。视图越复杂,冻结就越容易发生。在这个例子中,当我快速点击链接时,浏览器会冻结几秒钟。通常在真正复杂的视图上冻结需要更长时间。
有没有其他人在iOS8 Safari上注意到这个问题或者有解决方法?
这个简单的视图有时会在iOS8 Safari上冻结。冻结通常发生在您打开标签页、转到浏览器上的其他标签页或者离开浏览器体验后再回来。在这个例子中,当视图在点击链接时冻结时,tapCount不会增加。视图越复杂,冻结就越容易发生。在这个例子中,当我快速点击链接时,浏览器会冻结几秒钟。通常在真正复杂的视图上冻结需要更长时间。
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>