如何在节点红色的oneditsave之后的下拉列表中显示先前选择的值(动态)?

时间:2017-03-17 05:21:26

标签: node.js node-red

我有一个自定义节点,其中包含两个相互独立的下拉列表。

因此,第二个下拉列值会根据第一个下拉列表中的选定值进行更改。

我现在尝试的是:

  • 用户拖动我的自定义节点(iotinput)从drop中选择值 缩小并点击完成。
  • 他再次拖动另一个自定义节点(iotinput),然后选择不同的节点 值和点击完成。
  • 目前有两个自定义节点。
  • 因此,当用户返回并单击其中任何一个节点时,它就会出现 应该显示我以前选择的值,我无法做到 那一刻。
  • 那么用户应该将多少自定义节点拖入流中 单击完成后,能够看到之前选择的值。

注意:以上所有我在不部署流程的情况下这样做。

我面临的问题是,因为我正在从ajax调用加载我的下拉列表,所以我无法加载以前选择的值。

我已经检查了Node-Red中具有下拉列表的内置节点,其中选项值是硬编码的。我能够成功地为文本框做到这一点。

但是后来我很无能,我怎么能为动态创建的下拉菜单做呢?无论如何在Node-Red中都可以做到吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

在节点的oneditprepare功能中,您可以访问其当前配置。这意味着,一旦您将内容动态添加到select框,就可以根据节点属性设置所选值。

例如,如果某个节点具有属性colour,则可以执行以下操作:

oneditprepare: function() {
    var node = this;

    $.ajax({
        url: 'http://example.com/colours.json'
        success: function(result) {
            // ... do whatever you need to build you select box
            // then set the current value:
            $('#mySelectBox').val(node.colour);
        }
    })
}