2016-02-12 89 views
0

我有我的模板表看起來像這樣:是否有可能使用javascript更新jinja2模板變量?

{% if table %} 
    {% for row in table %} 
    <tr>{{ row }}</tr> 
    {% endfor %} 
{% endif %} 

最初「表」設置爲null,所以沒有任何顯示。

我有一個JavaScript客戶端,在某些時候,從服務器接收一些數據。這些數據需要顯示給用戶。 我基本上想要更新客戶端收到的數據表。

這可能嗎?

回答

1

一個更通用的解決這個問題正在彙編(某些)您神社模板的JavaScript,這樣就可以在客戶端使用它們。

我寫了一些代碼來做到這一點,你可能可以使用:

https://github.com/djc/jasinja

0

我懷疑你是否可以實現它。但還有另外一種方法。將表格部分保存在一個單獨的HTML /模板中,該模板在渲染時可以包含在主HTML文件中。

現在,當你收到客戶端的數據。更改數據格式,而不是返回數據,只需在表格模板呈現時返回表格模板,並使用JavaScript代替現有表格與您在客戶端收到的新表格。

主HTML文件:

<div> 
     {% include 'table_template.html' %} 
    </div> 

table_template.html

{% if table %} {% for row in table %} 
    <tr>{{ row }}</tr> 
{% endfor %} {% endif %} 

步驟1:最初,只是返回主HTML文件,因爲它是。

第2步:當客戶端收到數據後,請確保您返回呈現table_template.html

步驟3:一旦您收到渲染的數據,請用新的數據替換現有的數據表。 爲如:

$.post("/api-url", function(result) { 
     if (result) { 
      //here you replace the existing null table with the new rendered table 
      $("table").html(result); 
     } 
}); 
相關問題