【问题标题】:How to insert an array to a node js web service through angular js?如何通过 Angular js 将数组插入节点 js Web 服务?
【发布时间】:2015-12-30 07:59:14
【问题描述】:

我正在尝试将一组数据插入到节点 js Web 服务中。代码看起来像这样。

$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,我会得到这样的数组。

tasks:  {
0: "taskId: 1"
1: "subTaskName: SOW Updation"
2: "taskId: 1"
3: "subTaskName: Estimation - High Level"
4: "taskId: 2"
5: "subTaskName: Feasibility Study"
}

但我需要这样才能插入数据库

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
}]

任何人都可以帮我做这件事吗..?

【问题讨论】:

  • 只用this.push(data) - data 已经有目标格式了??

标签: javascript arrays angularjs node.js


【解决方案1】:

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

根据您的输出,selectedMap 定义不正确。它应该是 selectedMap = []; 而不是 selectedMap = {}; 您在代码中定义的任何位置。

试试这个:

$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);
    });
}

【讨论】:

  • 推送功能对我来说工作得很好。但是当我尝试取消选中时,弹出功能无法正常工作。它正在删除最后检查的数据而不是未检查的数据。你能帮我吗
  • 因为当您取消选中项目时,如果条件为 false 并且 else 将调用 which delete selectedMap 变量,因此删除 else 代码然后它应该可以正常工作...希望对您有所帮助
  • 如果我删除 else 块,那么未经检查的数据也会被推送。
  • 不,只有在条件为真且条件检查是否检查子任务时才推送数据..尝试然后回复...
  • 它将推送我检查的项目。但是如果我选中一个 item ,如果我取消选中它,它也会被添加到数据库中
猜你喜欢
  • 2020-04-21
  • 1970-01-01
  • 2021-07-02
  • 2017-09-02
  • 2020-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-25
  • 1970-01-01
相关资源
最近更新 更多