[英]Symfony2/Twig: can the default delimiters be changed?
在Twig中,用于评估表达式的默认分隔符为{{...}}。 有什么办法可以将其更改为其他内容,例如{[{...}]}?
问一下,因为我需要通过Twig服务AngularJS局部函数,并且AngularJS使用完全相同的定界符进行数据绑定。 我知道如何在AngularJS中更改定界符,但是由于有数百个定界符,而Twig分隔符却少得多,因此改用Twig分隔符会更好。
我建议你这种方法:
<div ng-app="angularApp">
{% verbatim %}
{{ angular_code}}
{% endverbatim %}
</div>
Twig允许对块定界符进行一些语法自定义。 不建议使用此功能,因为模板将与您的自定义语法绑定在一起。 但是对于特定项目,可以更改默认值。
要更改块定界符,您需要创建自己的词法分析器对象:
$twig = new Twig_Environment();
$lexer = new Twig_Lexer($twig, array(
'tag_comment' => array('{#', '#}'),
'tag_block' => array('{%', '%}'),
'tag_variable' => array('{{', '}}'),
'interpolation' => array('#{', '}'),
));
$twig->setLexer($lexer);
文档: http : //twig.sensiolabs.org/doc/recipes.html#customizing-the-syntax
TwigBundle不提供词法定界符的配置,因为更改它们会禁止您使用共享捆绑软件提供的任何模板(包括TwigBundle本身提供的异常模板)。
但是,您可以在角度模板周围使用raw标记,以避免转义所有花括号的痛苦: http : //twig.sensiolabs.org/doc/tags/raw.html
https://groups.google.com/forum/#!msg/symfony2/kyebufz4M00/8VhF1KWsSAEJ
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.