【问题标题】:Is it possible to update a jinja2 template variable using javascript?是否可以使用 javascript 更新 jinja2 模板变量?
【发布时间】:2016-05-23 06:14:22
【问题描述】:
我的模板中有一个如下所示的表格:
{% if table %}
{% for row in table %}
<tr>{{ row }}</tr>
{% endfor %}
{% endif %}
最初,'table' 设置为 null,所以什么都没有显示。
我有一个 javascript 客户端,它有时会从服务器接收一些数据。然后需要将这些数据显示给用户。
我基本上想用客户端收到的数据更新表格。
这可能吗?
【问题讨论】:
标签:
javascript
google-app-engine
jinja2
【解决方案2】:
我怀疑你能否实现它。但是还有另一种方法。将表格部分保存在单独的 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);
}
});