2016-02-12 93 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); 
     } 
}); 
相关问题