Как собрать строки, отправленные из angularJS, в массив NodeRED?
Я пытаюсь собрать строки, которые посылаю из 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 ответа
Если вы отправите версию json.stingify, вы сможете использовать узел JSON в потоке Node-RED, чтобы преобразовать его обратно в нужный вам объект JavaScript.
Сначала сделайте 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 );