Подтвердить что ты не робот

Twig: предотвращение разбора клиентских шаблонов

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

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

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

4b9b3361

Ответ 1

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

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

Update

Так как тег raw устарел, используйте verbatim.

Ответ 3

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

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

Ответ 4

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

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