Angular创建嵌套在现有对象内部的新JSON对象

时间:2014-08-16 02:40:43

标签: json angularjs mean-stack

我有一个正常运行的代码,它根据我的架构创建一个新的JSON对象,但我想将目标定位在整个对象内部。我不确定这是否可行......我陷入了创建新对象但又更新现有对象之间的问题

这是我的架构

year: { 
January: [
  {
    day: String,
    title: String,
    summary: String,
    description: String
  }
      ],

December: [
  {
    day: String,
    title: String,
    summary: String,
    description: String
  }
      ]
}
});

这是我在mongodb中的数据

{
  _id: "53ee9f0fc6aed109c6d33cfc"
  __v: 0
  -year: {
    December: [ ]
    November: [ ]
    October: [ ]
    September: [ ]
    August: [ ]
    July: [ ]
    -June: [
     -{
       day: "21"
       title: "ok"
       summary: "ok"
       description: "ok"
       _id: "53ee9f0fc6aed109c6d33cfd"
       }
         ]
    May: [ ]
    April: [ ]
    March: [ ]
    February: [ ]
    January: [ ]
    }
}

我的问题是我的逻辑,因为它目前正在创建一个全新的'年'JSON对象,我想使用_id:“53ee9f0fc6aed109c6d33cfc”并在每个月添加日期。

这是我目前的角度逻辑:

$scope.createEvent = function() {
  var cal = new CAL.API();


 var month = [{day:$scope.calDay, title: $scope.calTitle, summary: $scope.calSummary, 
        description: 'ok'}];
              cal.year = {};
              cal.year[$scope.calMonth] = month;
              cal.$save(function(result){
                $scope.calendar.push(result);
              });
            } 

1 个答案:

答案 0 :(得分:0)

您是否尝试将日历事件推送到日历对象,对吧?

如果是,您需要检索实际日历,然后将事件推送到特定日期,而不是为每个事件创建新日历,因为在这种情况下,您不会保存包含完整事件的单个日历。

另一个选项是为每个事件保存一个对象,并查询与您想要的月份和日期匹配的所有事件

第一个选项:

var cal = getMyActualCal();

然后检查月和日是否存在,如果不存在则创建。

cal.year[$scope.calMonth] = cal.year[$scope.calMonth] || []

var event = { day: $scope.calDay, title: 'mytitle', sumary: 'mysumary' };

cal.year[$scope.calMonth].push(event);

cal.$save();