2012-08-03 44 views
2

有什么办法可以在部分模板中强制使用龙卷风跳过变量吗?龙卷风+客户端的小胡子模板

我想是这样的:

模板

{{ 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 }} 

输出:为django

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

相同的解决方案,也欢迎。

回答

1

在Tornado中,您可以使用{{!输出{{{%!代替{%。如果没有开放标签,关闭标签应该从字面上理解。

在Django中,正如Chris Pratt提到的那样,您可以使用{% templatetag openvariable %}var{% templatetag closevariable %}代替{{var}}。因为这很糟糕,如果你做的不只是一两页,那么可能需要将verbatim模板标签支持为supervacuo建议。

+0

哇!非常优雅的'龙卷风'解决方案!谢谢。 – 2012-08-04 07:16:31

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) - 要么使用开发t版本的Django,自己添加模板标签,或使用类似django-templatetag-handlebars的东西来实现它,直到您可以升级。

+0

还有一个'templatetag'模板标签,它比'verbatim'更加冗长,但可以在现在和遗留代码中使用,不需要任何第三方扩展:https://docs.djangoproject.com/en/dev/ref/templates/builtins /#templatetag – 2012-08-03 16:48:36

+0

所以你说OP应该用'{%templatetag openvariable%}'和'{%templatetag closevariable%}'来替换每个mustache开关支架。 “更详细”似乎是轻描淡写...... – supervacuo 2012-08-03 16:57:37

+0

OP可以做任何他想做的事情。这是一种可能性,他应该知道这一点。 – 2012-08-03 16:59:31