SOLUTION - 注:
- angular.copy沒有工作對我來說
- lodash cloneDeep也不能工作。
- 刪除「嚴格使用」;沒有幫助 - 它只是刪除了錯誤記錄在錯誤分配到一個只讀值周圍的錯誤
對於我們來說,從SQL承諾值傳回的值是一個對象數組。
我們獲得「只讀」錯誤的值是字符串,布爾值和數字。
console.log('this will log');
sqlReturnArray[0].name = "Bob"; // read only error here
console.log('wouldnt get to here to log');
我想,好吧,如果我不能對數組,爲什麼不能我剛剛超過所有對象的值複製中的那些對象賦值屬性?對象的分配是通過引用的方式進行的,所以只是在數組上循環不會起作用。您需要遍歷鍵和值。
這解決了我們的問題
// 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);
});
在iOS 8上看到與Angular 1.2.26相同的問題。奇怪的是,它只發生在一些時間。 – 2014-10-22 11:44:24
您是否曾嘗試在IOS8上使用Google Chrome? – 2014-10-22 12:40:20
仍然發生在1.2.26?你看過那個問題報告嗎? https://github.com/angular/angular.js/issues/9128(與此提交相關:https://github.com/shunjikonishi/angular.js/commit/b91f34103974047708145e971506f354f804c17c) – Nicolas 2014-11-14 16:33:56