小编Sar*_*our的帖子

TypeError:尝试分配给readonly属性.在iOS8 Safari上的Angularjs应用程序中

我们的移动应用程序正在收到"TypeError:尝试分配给只读属性".仅在IOS 8上,堆栈跟踪没有帮助,似乎是在Angular代码中.

这可能是因为Angularjs代码的顶级"使用严格"而发生的.我的问题是(1)为什么它只在IOS8上开始?这是一个IOS8错误吗?(2)或者这是一个在IOS8上浮现的有角虫?(3)或许我们违反了严格的模式规则,但只有IOS8才开始抓住它们!我对第三个选项持怀疑态度,因为其他主流浏览器支持严格模式.

在这里找到了一个类似的报道问题.

strict-mode angularjs ios8

16
推荐指数
2
解决办法
2万
查看次数

Angular.js移动浏览器应用程序在iOS 8 Safari上冻结

我们的Angular.js Web App有时会在iOS8 Safari上冻结.发生此问题时,不会触发ng-click回调.如果你用普通的javascript onclick替换ng-click,那就行了.在iOS8设备上的Chrome中不会发生这种情况.

还有其他人在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;
};
});
Run Code Online (Sandbox Code Playgroud)
<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 …
Run Code Online (Sandbox Code Playgroud)

javascript safari freeze ios angularjs

6
推荐指数
1
解决办法
1725
查看次数

标签 统计

angularjs ×2

freeze ×1

ios ×1

ios8 ×1

javascript ×1

safari ×1

strict-mode ×1