我的模板中有一个表格如下:
{% if table %}
{% for row in table %}
<tr>{{ row }}</tr>
{% endfor %}
{% endif %}
最初'table'设置为null,因此不显示任何内容。
我有一个javascript客户端,在某些时候,从服务器接收一些数据。然后需要向用户显示该数据。 我基本上想用客户端收到的数据更新表。
这可能吗?
答案 0 :(得分:1)
这个问题的一般解决方案是将您的Jinja模板(部分)编译为JavaScript,以便您可以在客户端使用它们。
我写了一些代码来执行此操作,您可以使用它:
答案 1 :(得分: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);
}
});