我想最終比較兩個對象數組中的條目,所以我創建了一個名爲$ scope.oitems和$ scope.items的數組,這兩個數組都分配了從數據服務,setItems。我有ng模型爲$ scope.items的輸入;但是,當我查看$ scope.items和$ scope.oitems時,它們都會在更改輸入字段中的內容時更改值。我有一個對象$ scope.thing,並且應該是原始副本$ scope.othing,它們都只有'name'和'id'屬性,都是在數據服務setThing中分配的$分配給DATAFROMSERVICE.name和DATAFROMSERVICE.id的scope.name和$ scope.id。 $ scope.verything和$ scope.thing都改變了,當輸入只有ng-modeled到$ scope.thing改變時,無論如何,$ scope.name和$ scope.id不要改變,這就是我想要的$ scope。沒有和$ scope.oitems,因爲這些應該是從服務返回的數據的副本,以備後用。我在做什麼不正確的工作,導致他們不能成爲我的服務數據的原始副本?這是上述ng模型更改另一個對象的屬性值的問題
http://jsfiddle.net/Lvc0u55v/1163/
function MyCtrl($scope) {
$scope.oitems = new Array();
$scope.othing = new Object();
function setItems() {
var data = [{a:'foo', b:2}, {a:'bar', b: 1}]; //data returned from service
$scope.oitems = data;
$scope.items = data;
}
setItems();
function setThing() {
var dat = {name:'test', id: 12}; //data returned from service
$scope.othing = dat;
$scope.name = dat.name;
$scope.id = dat.id;
$scope.thing = dat;
}
setThing();
}
這個問題沒有使用angular.copy() – pbordeaux
這裏是我想要的工作示例,對於混淆抱歉抱歉,感謝angular.copy()http ://jsfiddle.net/Lvc0u55v/1184/ – pbordeaux