2013-05-19 62 views
14

这是什么之间的区别:减去树枝块定义

{%block body %} 

{%block body -%} 
+0

可能重复[连字符的含义是什么意思像在{%block body - %}?中​​的小枝?](http://stackoverflow.com/questions/17298902/what-does-the-hyphen-mean - 为块在树枝状块体) –

+3

是的,但我问了13年5月19日在11:56和\tMichaël佩林问13年6月25日在13:38。并且在这个页面我们有很好的回答SirDerpington – nonlux

回答

26

只是读一些关于它的文档中,不知道这是否也适用于{% block ... %}标签。 Twig whitespace control

{% set value = 'no spaces' %} 
    {#- No leading/trailing whitespace -#} 
    {%- if true -%} 
     {{- value -}} 
    {%- endif -%} 
{# output 'no spaces' #} 

还有给出另一个例子,其修剪的空白中的变量的前面,但doesnt't在结束这样做 - 所以效果是只在一侧。

{% set value = 'no spaces' %} 
    <li> {{- value }} </li> 
{# outputs '<li>no spaces </li>' #} 

以上样本显示了默认空白对照修改,以及如何用它来除去周围的标签空白。修剪空间将消耗标记的那一侧的所有空白。 它可以使用空格修剪上一个标签

,所以我想你给exmaples不同的是,在第一块body会有一个空白块开始后的一个侧面。在你的第二个例子body -块开始后没有。 只需阅读文档条目以了解其工作原理。

EDIT

一个简单的例子来说明在实况的例子:

{% set value = 'NO space in source code after/before "value"' %} 
<li> {{- value -}} </li> 
... 

输出萤火虫在HTML标记: no whitespaces afer value

鉴于此

{% set value = 'space in source code after "value"' %} 
<li> {{- value }} </li> 
... 

OUPUTS:

whitespace between "value" and closing </li>

通知 “值”,并在第二个例子中的闭合</li>之间的空间。因此,减号-可以在例如之前,之后或两侧擦除/修整空白。一个变量。

+0

非常感谢您的详细解答。 – nonlux

+0

理解是否需要“空白控制修饰符”,或者是否需要在* TWIG *指令之间用空格分隔(如''{%if true%}(空格|模板中的换行符) {%set something = {}%}'''),**和**如果两边都需要修饰符('''true - %}'''/'''{% - set。 .''')或者只有一个就足够了。 – Kamafeather

+0

好吧,我只是试了一下。其实它很重要。但只有一个修饰符(在'''true%}'''或'''{%set'''上)就足够了。否则,似乎所有的间距都被考虑(在没有HTML标记的纯TWIG指令之间)。 – Kamafeather