龙卷风+胡子在客户端模板化

时间:2012-08-03 12:47:00

标签: django templates tornado mustache

有没有办法强制龙卷风跳过变量部分模板?

我想要这样的事情:

模板

{{ block render_me }} 
   {% for var in range(1,3) %}
       {{ var }} 
   {% end %}
{{ end }}
{{ block render_me_later }} 
   {% magic_no_replace_vars_word %}
   <script id="mustacheTemplate"> 
        <ul data-role="listview" data-inset="true">{{#items}}<li>{{item}}</li>{{/items}}</ul>
   </script> 
   {% end %}
{{ end }} 

输出

1 2 3
<script id="mustacheTemplate"> 
<ul data-role="listview" data-inset="true">{{#items}}<li>{{item}}</li>{{/items}}</ul>
</script> 

同样欢迎django的解决方案。

2 个答案:

答案 0 :(得分:1)

在龙卷风中,您可以使用{{!输出{{{%!输出{%。如果没有打开标签,关闭标签应按字面意思工作。

在Django中,正如Chris Pratt所提到的,你可以{% templatetag openvariable %}var{% templatetag closevariable %}使用{{var}}。由于这很糟糕,如果你做的不仅仅是一两页,那么可能值得向后推送verbatim模板标签,如supervacuo建议的那样。

答案 1 :(得分:0)

不确定龙卷风,但对于Django,您可能需要the {% verbatim %} template tag

<强>输入

{% block render_me %}
{% for var in range(1,3) %}
    {{ var }} 
{% endfor %}
{% endblock %}
{% block render_me_later %} 
   {% verbatim %}
   <script id="mustacheTemplate"> 
        <ul data-role="listview" data-inset="true">{{#items}}<li>{{item}}</li>{{/items}}</ul>
   </script> 
   {% endverbatim %}
{% endblock %} 

<强>输出

1 2 3
<script id="mustacheTemplate"> 
<ul data-role="listview" data-inset="true">{{#items}}<li>{{item}}</li>{{/items}}</ul>
</script> 

不幸的是,它尚未进入已发布的版本(计划用于1.5) - 要么使用Django的开发版本,要么自己回传添加的模板标记,要么使用类似django-templatetag-handlebars的内容为您实施它,直到您可以升级。