J'essaie d'utiliser l'interface utilisateur de tableau de bord rouge-nœud pour un projet existant. Au sein de ce que je veux utiliser la «liste déroulante» comme un mécanisme de sélection. J'obtiens le nom 'device' et 'device_id' d'une base de données SQLite, et j'ai utilisé les messages DEBUG pour m'assurer que cela se passe correctement. Selon les informations du menu déroulant Tableau de bord -tableau de bord nœud-rouge - problèmes de liste déroulante
* "Les options peuvent être configurées en entrant des options msg contenant un tableau.Si juste du texte, la valeur sera la même que l'étiquette, sinon vous pouvez spécifier les deux en utilisant un objet de "label": "valeur" paires: par exemple [ "choix 1", "Choix 2", { "Choix 3": "3"}]
J'ai essayé différentes méthodes pour remplir les « options 'tableau mentionné avec les paires souhaitées mais il ne semble pas fonctionner comme prévu.Le code suivant est un exemple utilisant un nœud de fonction:
var newmsg = msg;
newmsg.options = [];
var temp1, temp2;
for (var i = 0; i < msg.payload.length; i++) {
temp1 = msg.payload[i].id;
temp2 = msg.payload[i].name;
newmsg.options[i] = {temp2 : temp1};
}
return newmsg;
(NB. temp1 et temp2 sont parce qu'il ne sera pas analyser au sein de l'attribution d'une seule ligne)
ce produit les objets suivants dans la fenêtre de débogage:
topic: "select name, id from devices where 1;"
payload: array[186]
[0 … 9]
0: object
name: "Ron"
id: 29
1: object
name: "Deck Motion TRx"
id: 51
.
.
.
options: array[186]
[0 … 9]
0: object
temp2: 29
1: object
temp2: 51
2: object
temp2: 54
. . . Quelqu'un peut-il me dire où je vais mal ?? Merci
Vous ne voyez pas de liste déroulante si la sortie de votre code n'est pas celle que vous désirez? – user2917823
@ user2917823 Il est facile d'oublier que d'autres ne sont pas passés par la réflexion. Excuses. La réponse ci-dessous explique exactement ce que je faisais mal même si mon explication manquait de description. – user2307189