Sar*_*our 16 strict-mode angularjs ios8
我们的移动应用程序正在收到"TypeError:尝试分配给只读属性".仅在IOS 8上,堆栈跟踪没有帮助,似乎是在Angular代码中.
这可能是因为Angularjs代码的顶级"使用严格"而发生的.我的问题是(1)为什么它只在IOS8上开始?这是一个IOS8错误吗?(2)或者这是一个在IOS8上浮现的有角虫?(3)或许我们违反了严格的模式规则,但只有IOS8才开始抓住它们!我对第三个选项持怀疑态度,因为其他主流浏览器支持严格模式.
我在这里找到了一个类似的报道问题.
解决方案 - 注意:
对于我们来说,从SQL promise值传回的值是一个对象数组.
我们得到"只读"错误的值是字符串,bool和数字.
console.log('this will log');
sqlReturnArray[0].name = "Bob"; // read only error here
console.log('wouldnt get to here to log');
Run Code Online (Sandbox Code Playgroud)
我想,如果我不能为数组中的THOSE对象的属性赋值,为什么我不能只复制所有对象的值?对象的赋值是通过引用的,所以只是在数组上做一个循环将无济于事.您需要遍历键和值.
这解决了我们的问题
// where sqlReturnArray is the object given from the SQL promise
var newArrayOfObjects = [];
angular.forEach(sqlReturnArray, function (obj) {
var newObj = {};
angular.forEach(obj, function (val, key) {
newObj[key] = val;
});
newArrayOfObjects.push(newObj);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17202 次 |
| 最近记录: |