【发布时间】:2017-10-19 20:00:47
【问题描述】:
我正在尝试将节点红色仪表板 ui 用于现有项目。在其中,我想使用“下拉菜单”作为选择机制。我从 SQLite 数据库中获取了“设备”名称和“设备 ID”,并使用了 DEBUG 消息来确保这种情况正确发生。 根据仪表板下拉信息--
*"可以通过输入包含数组的msg.options来配置选项。如果只是文本,那么值将与标签相同,否则您可以使用“标签”对象指定两者:“值”对: 例如 [“选择 1”,“选择 2”,{“选择 3”:“3”}]
我尝试了各种方法来使用所需的对填充提到的“选项”数组,但是它似乎没有按预期工作。以下代码是使用函数节点的示例:
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;
(注意,temp1 和 temp2 是因为它不会在单行赋值中解析!)
这会在调试窗口中生成以下对象:
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
。 . . 谁能告诉我哪里出错了?? 谢谢
【问题讨论】:
-
您没有看到下拉菜单,因为您的代码输出不是您想要的?
-
@user2917823 很容易忘记其他人没有经历过思考过程。道歉。下面的答案准确地解释了我做错了什么,即使我的解释缺乏描述。
标签: user-interface dropdown dashboard node-red