我不認爲這是一個真正的角度問題,雖然我在使用角度ng-repeat指令時偶然發現了問題。將對象字面值推入數組(重複自己..)
我試圖將JavaScript對象文字存儲到數組中使用推,所以我可以遍歷ng-repeat。
例如:
$scope.items = [];
var item = {
name: "bob"
};
$scope.items.push(item);
item.name = "mary";
$scope.items.push(item);
在這一點上,$ scope.items []被保持,而不必Bob和瑪麗名稱瑪麗的2個實例。這是違反直覺的,因爲我認爲push只是將下一個項目追加到數組的末尾。
我真正的代碼(總結)變爲像下面:
$scope.items = [];
var item = {
name: "";
};
for (var i = 0; i < 10; i++) {
// I dynamically set the item.name to some value using retrieved values from server
item.name = someValueFromServer;
$scope.items.push(item);
}
所以,再一次,在for循環的結束,而不是有10名不同的名字,我有相同的10名最後一個被檢索到。
我無法弄清楚如何解決這個問題,也無法在網上找到任何東西。我對此很新,所以可能一直在尋找錯誤的東西。
任何幫助都會很棒。非常感謝!
對象是引用;你在推動同一個對象。 – elclanrs
如何推送新的參考? –
$ scope.items.push(angular.copy(item))將深度複製對象,而不是對它的引用。 –