繁体   English   中英

Symfony2 / Twig:可以更改默认定界符吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM