0

stackoverflowに関する他の質問で見たjsスクリプトを使用せずに、jsonデータを使用してhtmlテーブルを作成したいと思います。

私はこの構造を持っています:

function visualize(json_response) {
  var err = json_response['error'];
  if (err) {
    $("#chart_div").html("<div class='alert'>" + err + "</div>");
    return;
  }
  var data = json_response['data'];
  if (data.length == 0) {

    {% elif net.ntype == "ztc" and sens.type == 2 %}
    $("#chart_div").html("<div class='info'>No data received from this contact sensor!</div>");

  }


  $("#chart_div").html('<img src="{{ static_url('img/loading.gif') }}">');

  {% if net.ntype == "ztc" and sens.type == 2 %}

  {% for d in data %} 
     $("#chart_div").append("<td>{% d %}<td>");

}

これは私のjsセクションです。代わりに、htmlセクションは単純なdivブロックです。

<div id="chart_div" style="width: 100%; height: 400px"></div>

つまり、データをテーブルに入れたいのです。しかし、私が書いたこのソリューションは機能していません。できるかわからない…何かアイデアは?

どうもありがとうございます!

4

1 に答える 1

0

{% %}テンプレートディレクティブ用です。これは、 Tornadoテンプレート構文リファレンスに記載されているディレクティブの1つである必要があります。 {{ }}エスケープされた出力用です。

行で:

     $("#chart_div").append("<td>{% d %}<td>");

{% d %}{{ d }}(エスケープ)または(エスケープなし)のいずれかである必要があります{% raw d %}。また、forループを終了する必要があります。

編集:これをもう一度確認したところ、TornadoテンプレートコードのJavaScript変数にアクセスしようとしているようです(Chris Francisが指摘したように)。テンプレートコード(中括弧内)はサーバー側で実行されます。JavaScriptへのアクセスやJavaScriptの知識はありません。

この場合、JQueryを使用して応答を繰り返すことができます。

jQuery.each(data, function(index, value) {
   $("#chart_div").append("<td>" + value + "<td>"); 
});
于 2012-09-21T00:27:05.673 に答える