Twig:阻止解析客户端模板

时间:2012-02-25 10:45:33

标签: symfony twig

我需要输出一部分客户端手柄模板,其模板类似于twig的'say'标签:

  <script type="text/x-handlebars">
    {{#view App.MyView}}
      <h1>Hello world!</h1>
    {{/view}}
  </script>

并且twig尝试解析这些模板。我该如何预防呢?是否可以将模板的一部分标记为纯文本?

4 个答案:

答案 0 :(得分:47)

为此目的有raw标记:

<script type="text/x-handlebars">
  {% raw %}
    {{#view App.MyView}}
      <h1>Hello world!</h1>
    {{/view}}
  {% endraw %}
</script>

更新

弃用raw代码时请改用verbatim

答案 1 :(得分:25)

  

{%raw%}已弃用

{% verbatim %}
    <ul>
    {% for item in seq %}
        <li>{{ item }}</li>
    {% endfor %}
    </ul>
{% endverbatim %}

来源: http://twig.sensiolabs.org/doc/tags/verbatim.html

答案 2 :(得分:0)

对于更大的模板块,我建议将这些脚本模板移动到一个单独的文件/文件中(我认为它们应该是更加结构化的。)

然后使用源命令{{source(&#39; uploadables-js.html&#39;)}}在您的树枝中渲染模板(重要的是,没有&#39;使用&#39;或&#39;包含& #39;)

答案 3 :(得分:0)

要不使用原始或逐字标签丢失模板,可以更改lexar选项以与客户端模板引擎不冲突:

...
$lexer_options = [
  'tag_variable' => ['{~', '~}'],
];
$lexer = new Twig_Lexer($twig, $lexer_options);
$twig->setLexer($lexer);