我在使用Restangular修补嵌套对象时遇到了麻烦。
我要修补的对象:
{
"unread_notification_count": 18,
"notification_settings": {
"mention": {
"email_notification": true,
"platform_notification": true,
"desktop_notification": true
},
"history_update": {
"email_notification": true,
"platform_notification": true,
"desktop_notification": true
},
"assign": {
"email_notification": true,
"platform_notification": true,
"desktop_notification": true
}
}
我想在切换开关时修补一些布尔值。
当我立即切换开关时,我将触发此功能
$scope.patch = function(key, field, value) {
var updated = {
};
// Below this isnt working
updated['notification_settings'][key][field] = value;
Restangular.one('users/'+ Global.user.id).patch(updated).then(function (data) {
console.log('succes');
}, function(error) {
console.log(error);
});
}
我似乎无法工作的部分是在更新的对象中发布的内容。我需要更新嵌套字段,但我不知道如何。
例如,我想设置notification_settings - >提及(关键) - > platform_notification(field)= true(value)
答案 0 :(得分:0)
我找到了遇到同样问题的人的答案:D
在更新的对象中我刚刚添加了整个通知设置
var updated = {
notification_settings: Global.user.notification_settings
};
Restangular为我做了其余的事。我认为这不是最好的方法,但不是向服务器发布1个布尔值,而是发布9.性能明智这不是一个大问题(对我而言)