【问题标题】:How to collect strings, sent from angularJS, in NodeRED array?如何在 NodeRED 数组中收集从 angularJS 发送的字符串?
【发布时间】:2016-08-18 10:28:09
【问题描述】:

我正在尝试收集从 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 等的值。

任何人都可以提出一个方法!.. 非常感谢您的帮助。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      首先,将您的 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 );
      

      【讨论】:

      • 我尝试了你建议的方式,但在这种情况下,整个数组作为字符串传递给 nodeRED。
      • 如果你发送它像 $scope.sock.send(this.user); ?
      • 它发送一个字符串 [object Object]
      • 我编辑了我的答案 - 在 NodeRED 上使用 JSON.parse() 对你有帮助吗?
      • 使用 JSON.parse 在 NodeRED 中为我抛出一个错误,说 JSON 未定义或类似的东西。没关系。感谢@knolleary,我已经让它工作了。也感谢都铎王朝的帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      • 2020-05-02
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多