2016-02-14 202 views
0

我從服務器獲取一些物體看起來像這樣的某些字段:修改對象的數組

{ 
    "id": 1", 
    "name": "Jim" 
} 

我折騰他們$scope.myThings,修改它們在我的應用程序,增加了一些領域,他們最終會看起來像這個:

{  
    "id": 1", 
    "name": "Jim", 
    "favoriteFood": "Noodles" 
} 

也許我從服務器得到一個更新,改變吉姆的名字。我想從服務器獲取對象數組,並將其更改應用到$ scope中的列表,而不必完全替換列表(即:$scope.myThings = newData)或必須通過比較ID進行迭代。有沒有一種方法來做到這一點?

+0

你在使用下劃線嗎?如果你是,有一個非常方便的方法叫做'_.extend',就像這樣:'_.extend(originalObject,propsToExtendOriginalObjectWith)' – frishi

回答

0

可以使用angular.merge

它的工作與對象和數組。

使用

angular.merge(dst, src);

dst對象目標對象。

src對象源對象(s)。

例如:

var a = [{x:4}]; var b=[{x:2,y:3}]; angular.merge(a,b);

結果: ​​

var a = [{x:4}]; var b=[{x:2,y:3}]; angular.merge(b,a);

結果: b=[{x: 4,y: 3}]