如何将Javascript中的Jinja表达式与转义序列字符串进行比较?

时间:2019-12-12 08:19:42

标签: javascript django jinja2

我正在使用jinja作为模板语言的django项目。我的问题:

我在html内有一个li标签:

<li onclick="toggle_size_selection('{% if \'/\' in co.2 %}{{ co.1 }}{% else %}{{co.2}}{% endif %}')">Point1</li>

当我访问该网址时,它会向我返回以下错误:

TemplateSyntaxError at /detail-page/
Could not parse the remainder: '\'/\'' from '\'/\''

如何正确编写此表达式?

"toggle_size_selection('{% if \'/\' in co.2 %}{{ co.1 }}{% else %}{{co.2}}{% endif %}')"

3 个答案:

答案 0 :(得分:1)

我假设您想将单引号字符串传递给toggle_size_selection,可以用&#39;替换最外面的单引号,因此Django模板不对其进行评估。

<li onclick="toggle_size_selection(&#39;{% if '/' in co.2 %}{{ co.1 }}{% else %}{{co.2}}{% endif %}&#39;)">Point1</li>

参考:Django Escaping

答案 1 :(得分:0)

我认为您尝试使用javascript本身更容易。您可以在JavaScript中像这样var co_2 = '{{ co.2 }}'那样进行变量赋值,然后创建一个简单的if来完成您要寻找的事情。

答案 2 :(得分:0)

这是我在里沙卜·克汉(Rishabh Chvhan)回答后找到的可行解决方案: 我刚刚替换了&#39 with &#39;

<li onclick="toggle_size_selection(&#39;{% if '/' in co.2 %}{{ co.1 }}{% else %}{{co.2}}{% endif %}&#39;)">Point1</li>