如何收集在angularRED数组中从angularJS发送的字符串?

时间:2016-04-25 06:45:30

标签: javascript arrays angularjs node.js node-red

我正在尝试收集从AngularJS发送到NodeRED数组的字符串。 AngularJS代码看起来像这样

 this.user =
   {
     medName1: '',
     medTime1: ''
   },
   {
     medName2: '',
     medTime2: ''
   },
   {
    medName3: '',
    medTime3: ''
   };

我正在medName1,medTime1,..等中收集表单数据。我正在尝试使用以下代码将这些数据通过websocket一个接一个地发送到NodeRED

 this.register = function() {
 $scope.sock.send(this.user.medName1);
 $scope.sock.send(this.user.medTime1);
 $scope.sock.send(this.user.medName2);
 $scope.sock.send(this.user.medTime2);
 $scope.sock.send(this.user.medName3);
 $scope.sock.send(this.user.medTime3);
}
单击“提交”按钮时会调用

register()。

我的问题是 - 如何将这些字符串存储在nodeRED数组中?。因为我发送它的方式,字符串总是存储在数组索引0中,覆盖前一个字符串。我也试过

 $scope.sock.send(JSON.stringify(this.user));

但它将整个事件作为字符串发送到nodeRED,然后无法提取分配给medName1,medTime1等的值。

任何人都可以建议一种方式!..我真的很感谢你的帮助。

2 个答案:

答案 0 :(得分:1)

如果发送json.stingify版本,则可以在Node-RED流中使用JSON节点将其转换回所需的JavaScript对象。

答案 1 :(得分:0)

首先,让你的this.user成为一个实际数组:

this.user =[
   {
     medName1: '',
     medTime1: ''
   },
   {
     medName2: '',
     medTime2: ''
   },
   {
    medName3: '',
    medTime3: ''
   }];

然后,就像你提到的那样,一步发送this.user数组:

this.register = function() {
   $scope.sock.send(JSON.stringify(this.user));
}

然后,在NodeRED中使用:

 var user_array = JSON.parse( the_serialized_array );