2016-09-20 45 views
0

比方說,我有一個model.data對象,並且希望將該對象複製到datacopy並對該新對象(datacopy)進行一些更改。但是當我更改datacopy時,更改也適用於model.data。如何阻止?angular.copy()不會中斷對模型的引用

function updateClone (_object) { 
    var datacopy = angular.copy(model.data); 
    var index = _.findIndex(datacopy, function (obj) { 
          return obj.id === _object.id; 
         }); 

    datacopy.splice(index, 1, _object); 
    } 
+1

你能分享'model'的內容是什麼? –

回答

1

因爲名譽我不能評論問題。

Angular.copy()工作正常。

您可以嘗試以下變體:將功能外的對象複製並將其作爲參數發送。

function updateClone (datacopy, _object) 
{ 
    var index = _.findIndex(datacopy, function (obj) { 
           return obj.id === _object.id; 
          }); 

    datacopy.splice(index, 1, _object); 
} 
1

我相信angular.copy工作正常。

我相信正在進行的是該模型存儲對其他對象的引用。當你angular.copy(model.data)數據與嵌套引用複製:http://jsfiddle.net/pxcf2dqw/2/

var toy = { 
    price: 50 
} 

var model = { 
    data: toy 
} 

var datacopy = angular.copy(model.data); 
datacopy.price = 50 

console.log(datacopy.price) 
console.log(model.data.price) 
相關問題