restangular patch 嵌套字段

restangular patch nested field

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

我似乎无法开始工作的部分是 post 更新对象中的内容。我需要更新嵌套字段,但我不知道如何。

例如我想设置 notification_settings -> mention(key) -> platform_notification(field) = true(value)

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

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

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

Restangular 为我完成了剩下的工作。我认为这不是最好的方法,但是我没有向服务器发布 1 个布尔值,而是发布 9。性能方面这不是一个大问题(对我来说)