首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过角度js将数组插入到节点js web服务?

如何通过角度js将数组插入到节点js web服务?
EN

Stack Overflow用户
提问于 2015-10-02 06:20:41
回答 1查看 52关注 0票数 0

我正在尝试向节点js服务插入一个数据数组。代码看起来是这样的。

代码语言:javascript
复制
$scope.addList = function(task,subtask){
         subtask.checked= !(subtask.checked);
       var data = {
       "taskId": task._id,
       "subTaskName": subtask.subTaskName,
     };     
        if(subtask.checked){

          angular.forEach(data, function(value,key){
            this.push(key + ': ' + value);
          },selectedMap); 

        }
        else{
          delete selectedMap;
        }
      }

如果我在控制台中打印selectedMap,就会得到这样的数组。

代码语言:javascript
复制
tasks:  {
0: "taskId: 1"
1: "subTaskName: SOW Updation"
2: "taskId: 1"
3: "subTaskName: Estimation - High Level"
4: "taskId: 2"
5: "subTaskName: Feasibility Study"
}

但我需要这样才能插入DB

代码语言:javascript
复制
subTasks: [{
"task_id": 1,
"subTaskName": "Requirements Analysis"
},
{
"subTaskName": "Feasibility Study",
"task_id": 2
},
{
"subTaskName": "Requirement Elicitation",
"task_id": 3
},
{
"subTaskName": "Requirements Understanding",
"task_id": 4
},
{
"subTaskName": "Requirement Documentation",
"task_id": 5
}]

有人能帮我做这个吗..?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-02 06:36:32

您是在数组中添加键值,而不是添加对象。

根据您的输出,没有正确定义selectedMap。无论您在代码中定义什么地方,它都应该是selectedMap = [];而不是selectedMap = {};

试试这个:

代码语言:javascript
复制
$scope.addList = function(task,subtask){
  subtask.checked= !(subtask.checked);
  var data = {
    "task_id": task._id,  // Updated key name based on your required output
    "subTaskName": subtask.subTaskName,
  };
  if(subtask.checked){
    selectedMap.push(data); // Add data object in array instead of key value pair    
  } else {
    selectedMap = selectedMap.filter(function(obj) {
          return (obj.task_id !== data.task_id && obj.subTaskName !== data.subTaskName);
    });
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32901558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档