我有一个像
var person = {'id':null, 'name':'John Doe'}
将对象值插入数据库后,我将从服务器获取另一个对象:
var personInDB = {'id':1234, 'name':'John Doe'}
我已经使用 angular.merge
使用更新的值 person
和 personInDB
的值。
但是,我想在应用 angular.merge
之前清空 person
对象,这样我只能获取数据库中的值。我不想将新的空对象分配给 person,因为这会破坏角度的数据绑定。
原文由 Barun 发布,翻译遵循 CC BY-SA 4.0 许可协议
我不知道任何类型的内置对象
.deleteAllProperties()
方法,因此会循环遍历属性并分别调用delete
。以下是一种相当简洁的方法:或者稍微长一点的非 ES6 箭头函数版本支持回到 IE9:
对于更旧的 IE,只需使用
for..in
循环(带有.hasOwnProperty()
检查)。显然,您可以将上述任何内容放入函数中以便于重用:
请注意,虽然这回答了您的问题,但我不确定您为什么认为您需要这样做。您在问题中显示的示例前后具有相同的两个属性,因此
angular.merge()
只会用新值覆盖旧值,而无需先清空对象。 (您是否正在尝试考虑一种情况(未显示),即您的对象的旧版本可能具有新版本中不再存在的属性?)