0

関数ノード(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>
4

2 に答える 2

1

console.log(メッセージ) を使用して確認します。

  1. {{payload}} パラメーターは、予想どおり整数である必要があります
  2. 割り当て後の J パラメータの値は、0 ~ 2 の整数である必要があります
于 2015-09-16T14:00:24.660 に答える
0

NodeREDを扱っています。ペイロード パラメータについて学習する最も簡単な方法は、Debug ノード (濃い緑色のノード) を使用して、それをテンプレート ノードと同じ出力にアタッチすることです。そうすれば、それが何でできているかがすぐにわかります。ほとんどの場合、ペイロードは JSON オブジェクトです。このようなもの:

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

... または類似。

次に、そのコンテンツを変更し{{ }}て、関心のある番号を持つ JSON オブジェクト内の変数を反映するだけです。次のように:

     {{payload.image}}

関数ノードを再確認してください。return ステートメント (通常はreturn msg) で終わらない場合は、単に入力がありません。

于 2015-09-17T02:39:10.577 に答える