2013-05-19 9 views
14

Jaka jest różnica między tym:Minus W definicji bloku gałązka

{%block body %} 

i że

{%block body -%} 
+0

możliwy duplikat [Co oznacza łącznik dla bloku w Twig jak w {% bloku -%}? (Http://stackoverflow.com/questions/17298902/what-does-the-hyphen-mean -do-bloku-w-twig-like-in-block-body) –

+3

Tak, ale zapytałem maja 19 '13 o 11:56 i \t Michaël Perrin zapytał 25 czerwca 13 o 13:38. I na tej stronie mamy świetną odpowiedź od SirDerpingtona – nonlux

Odpowiedz

26

Wystarczy przeczytać coś o nim w dokumentacji, nie wiem, czy będzie to również zastosowanie na {% block ... %} tagów. Twig whitespace control

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

Jest też inny przykład dany który przycina spacje przed zmiennej ale doesnt't zrobić na końcu - więc efekt jest tylko po jednej stronie.

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

Powyższy przykład pokazuje modyfikator Control domyślny spacją, i jak można go używać, aby usunąć spacje wokół tagów. Przycinanie miejsca pochłonie wszystkie spacje po tej stronie tagu. Możliwe jest użycie spacji przycinanie na jednej stronie znacznika

więc myślę, że różnica w swoim podanych exmaples jest to, że w pierwszym bloku body będzie spacje po uruchomieniu bloku. W twoim drugim przykładzie body - nie ma żadnego po rozpoczęciu bloku. Wystarczy przeczytać dokumentację, aby zobaczyć, jak to działa.

EDIT

Prostym przykładem zademonstrować przykład w doku:

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

wyjść w Firebug w znacznikach HTML: no whitespaces afer value

niniejsza

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

ouputs:

whitespace between "value" and closing </li>

Zauważmy, że przestrzeń pomiędzy "wartości" i zamykania </li> w drugim przykładzie. Tak więc minus - wymazuje/przycina białe znaki przed, po lub po obu stronach, np. zmienna.

+0

Dziękuję bardzo za szczegółową odpowiedź. – nonlux

+0

Byłoby interesujące dowiedzieć się, czy "modyfikator kontroli odstępu" jest potrzebny tylko w odniesieniu do znaczników, czy też jest potrzebny również pomiędzy instrukcjami * TWIG * podzielonymi spacjami (jak '' '{% if true%} (spacja | nowa linia w szablonie) {% set something = {}%} '' '), ** i ** jeśli modyfikator byłby potrzebny po obu stronach (' '' true -%} '' '/' '' {% - set. . "lub wystarczy. – Kamafeather

+0

Ok, właśnie tego wypróbowałem. Właściwie to ma znaczenie. Wystarczy jednak jeden modyfikator (na '' true%} '' 'lub na' '' ''% %''').W przeciwnym razie wydaje się, że wszystkie odstępy są brane pod uwagę (albo między czystymi instrukcjami TWIG bez znaczników HTML). – Kamafeather

Powiązane problemy