2016-02-14 2 views
0

я получаю некоторые объекты с сервера, которые выглядят следующим образом:Изменение определенных полей в массиве объектов

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

Я бросаю их в $scope.myThings, изменить их в моем приложении, добавив несколько полей, они в конечном итоге выглядят как это:

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

Возможно, я получаю обновление с сервера, меняя название Jims. Я хотел бы взять массив объектов, которые я возвращаюсь с сервера, и применить их изменения к списку, который находится в $ scope, без необходимости полностью заменять список (то есть: $scope.myThings = newData) или выполнить итерацию по сравнению с идентификаторами.

есть ли способ сделать это?

+0

Используете ли вы символ подчеркивания? Если это так, есть довольно удобный метод под названием '_.extend', используемый так:' _.extend (originalObject, propsToExtendOriginalObjectWith) ' – frishi

ответ

0

Вы можете использовать angular.merge.

Он работает с объектом и массивами.

использование

angular.merge(dst, src);

dstОбъект объект назначения.

srcОбъект Исходный объект (ы).

Например:

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

Результат: a=[{x: 2,y: 3}]

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

Результат: b=[{x: 4,y: 3}]

Смежные вопросы