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>

如何传递参数以显示详细信息功能?(我不能使用 ',我尝试使用 \" 但它不起作用)。结果是带有键名称、公民、city_id 的字典列表。龙卷风模板使用 {{ }} 来访问传递的参数。

4

2 回答 2

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 回答
0
   showDetails = function (id, city_id)
       {
          window.location = '/cities?id='+id+'&city_id='+city_id;
        }

我认为是简单的方法

于 2013-01-03T14:53:50.647 回答