Twig: предотвратить синтаксический анализ клиентских шаблонов - PullRequest
38 голосов
/ 25 февраля 2012

Мне нужно вывести часть шаблонов руля на стороне клиента, в которой есть теги, похожие на теги 'say' веточки:

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

И веточка пытается проанализировать эти шаблоны.Как мне это предотвратить?Можно ли пометить раздел шаблона как обычный текст?

Ответы [ 4 ]

47 голосов
/ 25 февраля 2012

Для этой цели есть тег raw :

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

Обновление

Поскольку тег raw устарел, используйте вместо него verbatim.

25 голосов
/ 11 июля 2013

{% raw%} устарел

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

Источник: http://twig.sensiolabs.org/doc/tags/verbatim.html

0 голосов
/ 27 сентября 2016

Чтобы не засорять шаблоны необработанными или дословными тегами, можно изменить параметры lexar , чтобы они не конфликтовали с механизмами шаблонов на стороне клиента:

...
$lexer_options = [
  'tag_variable' => ['{~', '~}'],
];
$lexer = new Twig_Lexer($twig, $lexer_options);
$twig->setLexer($lexer);
0 голосов
/ 27 октября 2015

Для больших блоков шаблонов я бы предложил переместить эти шаблоны скриптов в отдельный файл / файлы (где, как я полагаю, они должны быть более структурированными).

Затем визуализировать шаблоны в вашей ветке, используяисходная команда {{source ('uploadables-js.html')}}} (ВАЖНО, без 'use' или 'include').

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...