Node-Red configuration
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ui_template.html 3.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <script type="text/html" data-help-name="ui_template">
  2. <p>Template WidgetにはHTMLコードおよびAngular/Angular-Materialディレクティブを指定できます。</p>
  3. <p>このノードで動的なユーザインターフェイス要素を作成し、入力によって見た目を変更したり、メッセージをNode-REDに送り返したりできます。</p>
  4. <p><b>例:</b><br>
  5. <pre style="font-size:smaller;">&lt;div layout=&quot;row&quot; layout-align=&quot;space-between&quot;&gt;
  6. &lt;p&gt;数値は&lt;/p&gt;
  7. &lt;font color=&quot;{{((msg.payload || 0) % 2 === 0) ? 'green' : 'red'}}&quot;&gt;
  8. {{(msg.payload || 0) % 2 === 0 ? '偶数' : '奇数'}}
  9. &lt;/font&gt;
  10. &lt;/div&gt;</pre>
  11. このコードは<code>msg.payload</code>で受け取った数値が偶数か奇数かを表示します。同時に、偶数であれば緑に、奇数であれば赤にテキストの色を変更します。<br/>
  12. 次は、一意なIDをテンプレートに設定、デフォルトのテーマカラーを設定、入力メッセージの到着を監視する例です。</p>
  13. <pre style="font-size:smaller;">
  14. &lt;div id="{{'my_'+$id}}" style="{{'color:'+theme.base_color}}"&gt;何らかのテキスト&lt;/div&gt;
  15. &lt;script&gt;
  16. (function(scope) {
  17. scope.$watch('msg', function(msg) {
  18. if (msg) {
  19. // メッセージ同着時に適当な処理を実行
  20. $("#my_"+scope.$id).html(msg.payload);
  21. }
  22. });
  23. })(scope);
  24. &lt;/script&gt;</pre>
  25. <p>この方法で作成したテンプレートはコピー可能です。コピーはそれぞれ独立して利用できます。</p>
  26. <p><b>メッセージ送信:</b><br>
  27. <pre style="font-size:smaller;">
  28. &lt;script&gt;
  29. var value = "こんにちは世界";
  30. // もしくは、コールバック関数で値を書き換え
  31. this.scope.action = function() { return value; }
  32. &lt;/script&gt;
  33. &lt;md-button ng-click=&quot;send({payload:action()})&quot;&gt;
  34. クリックすると「こんにちは世界」を送信します
  35. &lt;/md-button&gt;</pre>
  36. この例は、クリックするとペイロードに<code>'こんにちは世界'</code>を持つメッセージを送信するボタンを表示します。</p>
  37. <p><b><code>msg.template</code>の使用:</b><br>
  38. <code>msg.template</code>によってテンプレートを定義することもできます。例えば、外部ファイルに格納したテンプレートを用いる場合に有用です。<br>
  39. テンプレートは入力が変化した場合に再ロードされます。<br>
  40. 「HTMLコード」フィールドに記述したコードは、<code>msg.template</code>が存在する場合には無視されます。</p>
  41. <p>以下のアイコンフォントの利用も可能です: <a href="https://klarsys.github.io/angular-material-icons/" target="_blank">マテリアルデザインアイコン</a><i>(例:'check'、'close')</i>、<a href="https://fontawesome.com/v4.7.0/icons/" target="_blank">Font Awesomeアイコン</a><i>(例:'fa-fire')</i>、<a href="https://github.com/Paul-Reed/weather-icons-lite/blob/master/css_mappings.md">天気アイコン</a>。
  42. アイコン名に'mi-’に追加することでGoogleマテリアルアイコン一式を利用できます。例:'mi-videogame_asset'。</p>
  43. <p>クラスが指定されている場合、そのクラスは親要素に追加されます。 このようにして、カスタムCSSを使用して、カードとその中の要素のスタイルを設定できます。 クラスは、<code> msg.className </code>文字列プロパティを設定することで実行時に設定できます。</p>
  44. </script>