使用节点红色中的模板节点进行显示(IBM BLUEMIX)

时间:2015-08-18 15:18:16

标签: javascript html ibm-cloud node-red

我试图从函数节点(node-red)获取运行时值(msg.payload)并将其提供给模板节点(node-red)以根据输入显示适当的图像。我使用过下面的代码,但图像不会根据输入的选择而改变。下面是代码。请查看并向我提供一些见解或需要更改的内容才能使其正常工作。

<html> 
  <head> 
     <script type="text/javascript"> 
        function displayImage() { 
          var j=parseInt({{payload}});
          document.getElementById("img").src = images[j]; 
        }

        function startTimer() { 
          setInterval(displayImage,3000); 
        } 

        var images = []; 
        images[0] = "image1.jpg"; 
        images[1] = "image2.jpg";
        images[2] = "image3.jpg";
    </script>
  </head> 
  <body onload="startTimer()">
     <img id="img" src="image1.jpg"/>
  </body> 
</html>

2 个答案:

答案 0 :(得分:1)

使用console.log(消息)并检查:

  1. {{payload}}参数应该是您预期的整数
  2. J参数的值,在赋值后,应该是0-2之间的整数

答案 1 :(得分:0)

您正在处理NodeRED。了解有效负载参数的最简单方法是使用Debug节点(深绿色节点)并将其附加到与模板节点相同的输出。然后,您将很快看到它的构成。您的有效负载很可能是JSON对象。像这样:

 { "name" : "Peter",
   "color" : "Blue",
   "image" : "2"
  }

......或类似的。

然后,您只需更改{{ }}中的内容,以反映JSON对象中包含您感兴趣的数字的变量。例如:

     {{payload.image}}

仔细检查您的功能节点。如果它没有以return语句结尾(通常是return msg),那么您根本就没有任何输入。