无法在浏览器端打印双括号({{)

时间:2015-08-18 13:27:16

标签: html angularjs django python-2.7

我想要

<a class='js-acnhor-scroll' target="_self" 
   data-ng-href="#{{rc.prepareUrlParam(metric_group.title)}}" 
   data-ng-bind="metric_group.title">
</a>

就像在浏览器端一样,但python认为它是一个变量并抛出错误:

TemplateSyntaxError: Could not parse the remainder: '(metric_group.title)' from 'rc.prepareUrlParam(metric_group.title)'

如何将双括号({{)发送到浏览器?

2 个答案:

答案 0 :(得分:1)

您可以使用{% verbatim %}模板块来阻止Django解析该模板的那一部分:

{% verbatim %}data-ng-href="#{{rc.prepareUrlParam(metric_group.title)}}" {% endverbatim %}

或者,您可以使用{% templatetag %}模板标记输出文字{{}}

data-ng-href="#{% templatetag openvariable %}rc.prepareUrlParam(metric_group.title){% templatetag closevariable %}" 

这两种方法都允许您从Django模板输出文字{{}},然后由AngularJS解析和处理。

答案 1 :(得分:0)

您需要将大括号{{}}加倍,以输出单个大括号{}。你能尝试这样做吗?

#{{{{rc.prepareUrlParam(metric_group.title)}}}}"

检查出来:

>>> x = " {{ Hello }} {0} "
>>> print x.format(42)
' { Hello } 42 '