簡體   English   中英

如何通過模板參數數組將參數傳遞給js函數

[英]How to pass parameter to js function from template parameter array

我在龍卷風模板表中生成了城市,並試圖像上一列詳細信息按鈕一樣

{% 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。龍卷風模板使用{{}}訪問傳遞的參數。

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

我認為這是簡單的方法

大括號內的變量將直接輸出(或字符串的字符串表示形式),因此取決於設置的內容。

例如,如果您有:

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM