【问题标题】:Display using template-node in node red(IBM BLUEMIX)使用红色节点中的模板节点显示(IBM BLUEMIX)
【发布时间】:2015-08-18 15:18:15
【问题描述】:

我试图从函数节点(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>

【问题讨论】:

  • payload的结构是什么,有图片编号的字段吗?
  • 您是否在页面加载到浏览器后查看了该页面的 src 并检查了控制台是否有错误?

标签: javascript html ibm-cloud node-red


【解决方案1】:

使用console.log(message)并检查:

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

【讨论】:

    【解决方案2】:

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

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

    ...或类似的。

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

         {{payload.image}}
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-22
      • 1970-01-01
      相关资源
      最近更新 更多