2016-02-14 78 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}]