restangular patch嵌套字段

时间:2015-12-15 14:11:27

标签: angularjs patch restangular

我在使用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)

1 个答案:

答案 0 :(得分:0)

我找到了遇到同样问题的人的答案:D

在更新的对象中我刚刚添加了整个通知设置

var updated = {
    notification_settings: Global.user.notification_settings
};

Restangular为我做了其余的事。我认为这不是最好的方法,但不是向服务器发布1个布尔值,而是发布9.性能明智这不是一个大问题(对我而言)