0

都市を含む竜巻テンプレートテーブルで生成し、最後の列の詳細ボタンのようにしようとしています

{% if globals().has_key('results')  %}
   {% for result in results %}
     <tr>
         <td>{{result['name']}}</td>
         <td>{{result['citizens']}}</td>
         <td style="width:100px; height:100px;">
          <div class="ui-grid-b">
          <a class="ui-block-a ui-icon-detail" onclick="showDetails('{{id}}',{{result['city_id']}});" data-role="ui-li-aside" data-icon="right_arrow" data-theme="a"></a>
          </div>
         </td>
     </tr>
    {% end %}
{% end %}

クリックすると、URL にパラメーターが含まれる別のページに読み込まれます。

<script type="text/javascript">
    function showDetails(id, city_id)
       {
          window.location = '/cities?id='+id+'&city_id='+city_id;
        }
</script>

詳細機能を表示するためにパラメータを渡す方法は? (' は使用できません。\" で試しましたが、うまくいきません。結果は、名前、市民、都市 ID のキーを持つ辞書のリストです。{{ }} は、渡されたパラメーターにアクセスするために tornado テンプレートによって使用されます。

4

2 に答える 2

0
   showDetails = function (id, city_id)
       {
          window.location = '/cities?id='+id+'&city_id='+city_id;
        }

簡単な方法だと思います

于 2013-01-03T14:53:50.647 に答える
0

中括弧内の変数は直接出力されるため(またはその文字列表現)、設定内容によって異なります。

たとえば、次の場合:

id = 'foo'
results = [{ 'city_id': 'bar' }]

そして、それらをテンプレートに渡し、次に次の行を渡します。

showDetails('{{id}}',{{result['city_id']}});

次のように出力されます(これはビューソースで確認できます)。

showDetails('foo',bar);

{{result['city_id']}}整数でない限り、引用符が欠落していると思います。result['city_id']整数の場合は機能するはずです。JavaScriptでは、一重引用符または二重引用符の両方で問題ありません。

ただし、@ Peteがすでに指摘しているように、「クリックすると、URLにパラメータがある別のページにロードする」というhref属性があります。次の方法で、多くの作業と潜在的な破損を節約できます。

<a href="/cities?id={{ id }}&city_id={{ result['city_id'] }}" ....></a>
于 2013-01-04T15:59:40.273 に答える