2016-04-25 3 views
0

Ich versuche, Zeichenfolgen zu sammeln, die ich von AngularJS an ein NodeRED-Array sende. Der AngularJS Code sieht wie folgt ausWie sammle ich Zeichenketten, die von angularJS gesendet wurden, im NodeRED-Array?

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

I Formulardaten in medName1 bin zu sammeln, medTime1, .. und so weiter. Ich versuche, diese Daten zu senden, über websocket, eins nach dem anderen zu NodeRED mit dem folgenden Code

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() aufgerufen wird, wenn ich auf „Absenden“.

Meine Frage ist - Wie speichere ich diese Zeichenfolgen in einem NodeRED-Array?. Wegen der Art, wie ich es sende, wird die Zeichenfolge immer im Array-Index 0 gespeichert und überschreibt die vorherige Zeichenfolge. Ich habe auch versucht

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

aber es sendet die ganze Sache als String nodeRED die dann macht es unmöglich, die Werte zu medName1, medTime1, und so weiter zugeordnet zu extrahieren.

Kann mir bitte jemand einen Weg vorschlagen! .. Ich werde Ihre Hilfe wirklich zu schätzen wissen.

Antwort

1

Wenn Sie die Version json.stigify senden, können Sie einen JSON verwenden Knoten in Ihrem Node-RED-Fluss, um es zurück in das gewünschte JavaScript-Objekt zu konvertieren.

+0

Ja, es hat funktioniert! Vielen Dank für deine Hilfe :) –

0

Stellen Sie zunächst Ihre this.user eine tatsächliche Array:

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

Dann die this.user Array in einem einzigen Schritt senden Sie einfach, wie Sie erwähnt:

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

Dann in NodeRED diese verwenden:

var user_array = JSON.parse(the_serialized_array); 
+0

Ich habe versucht, wie Sie vorgeschlagen, aber in diesem Fall wird das gesamte Array als eine Zeichenfolge an nodeRED. –

+0

und wenn Sie es senden wie $ scope.sock.send (this.user); ? –

+0

Es sendet eine Zeichenfolge [Objekt Objekt] –

Verwandte Themen