2013-01-03 43 views
0

我在龍捲風模板表產生與城市,我想有一個像最後一列的詳細信息按鈕如何參數由模板參數數組傳遞給js函數

{% 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的字典列表。 龍捲風模板使用{{}}來訪問傳遞的參數

+1

爲什麼不直接使用A HREF,有沒有你正在使用JS功能,使一個鏈接一個鏈接特別的原因? – Pete

+0

你現在得到了什麼結果?用當前代碼生成的html是什麼?它看起來像這樣的'onclick =「showDetails('這裏是什麼?',它在結果中是什麼樣子?);」'或者它取代了值或什麼? – llamerr

+0

@llamerr你需要更多報價 – EricG

回答

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

我認爲這是最簡單的方式

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> 
+0

我有這個疑問。模板框架,它們會替換整個html文檔中的模板,而不管它們是否在引號中? – cafebabe1991

相關問題