На самом деле вы можете решить эту проблему в своем javascript так просто:
import Vue from 'vue';
Vue.options.delimiters = ['${', '}'];
Теперь вы можете использовать двойные скобки ({{ }}
) для ветки, как вы делали раньше, и ${ }
для VueJs.
РЕДАКТИРОВАТЬ : То, что вы хотите сделать, невозможно.Вы действительно можете преобразовать {{ }}
в соответствующие ему html-сущности, используя простой фильтр, подобный следующему:
new \Twig_Filter('yourFilter', function ($string) {
return htmlentities($string, ENT_HTML5);
}, ['is_safe' => ['html']])
, но, поскольку Vue работает поверх вашего рендеринга html, конфликт, который вы представляете, все равно будет возникать (поскольку html будетотображать эти html-сущности в скобках).
Ваше единственное решение - использовать более конкретный разделитель для вашего Vue, как этот, чтобы избежать этого конфликта:
Vue.options.delimiters = ['$vue{', '}'];