我正在尝试收集从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等的值。
任何人都可以建议一种方式!..我真的很感谢你的帮助。
答案 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 );