将一个对象合并到另一个对象而不创建新对象

时间:2017-01-16 22:47:00

标签: javascript jquery angularjs

我正在使用角度1。

我有一个简单的API,每隔10秒通过套接字传递一次对象。

响应是一个对象,应该更新用于生成ang1视图的现有对象。

然而,当我一对一地更换对象时,整个页面都会闪烁一点。是否可以将一个对象合并到另一个对象中,以便只更改对象的更改后的叶子?

我有一个jquery扩展,但是这个复制到另一个太高的级别。

以下是一个例子:

var a = {
  'bob': {
    'gender': 'male'
  },
  'cat': {
    'gender': 'female'
  }
};
var b = {
  'bob': {
    'gender': 'female'
  },
  'cat': {
    'gender': 'female'
  }
};

我想要实现的是一个单独的函数,它只会将var中的差异合并到var a中。所以在上面的例子中,该函数只会改变a.bob.gender。

1 个答案:

答案 0 :(得分:0)

https://stackoverflow.com/users/754119/alon-eitan在评论中给出了答案并解决了问题:

" angular.marge函数将原始绑定与视图保持一致,以防止视图闪烁"

https://docs.angularjs.org/api/ng/function/angular.merge