2013-03-29 10 views
13

Chcę ustawić tytuły stron w szablonach podrzędnych układu za pomocą jadeitu. Nie chcę ustawiać ich w trasach, ponieważ wymaga to ponownego uruchomienia serwera. Oto co mam nadzieję osiągnąć:Ustaw tytuł strony z szablonu podrzędnego w Jade

layout.jade:

!!! 5 
    head 
    - var title = title || "Default Title Here" 
    title #{title} 
    // ... 

child.jade:

- var title = "Child Title Here" 
extends layout 
// ... 

Każdy myśli, w jaki sposób można to osiągnąć byłoby wspaniała pomoc.

Dzięki!

Odpowiedz

16

Od https://github.com/visionmedia/jade/issues/654#issuecomment-5859502

layout.jade

block variables 
!!! 5 
head 
- var title = title || "Default Title Here" 
title #{title} 

child.jade:

block variables 
    title = "ST" 
extends layout 
+2

Brakujące" - "z przodu title = "ST na child.jade? – Meeker

+0

Po prostu ostrożnie z wcięciem i upewnij się, aby wywołać zmienną we właściwy sposób: https://pugjs.org/language/attributes.html – Oriol

5

skończyło się z bardzo prostej logiki od powyższej odpowiedzi nie działa dla mnie:

w layout.jade

block head 
    - var theTitle = titleVar ? titleVar : "This title was set from The Layout!" 
title #{theTitle} 

w child.jade:

extends layout 
block head 
    - var titleVar = "This title was set from the child!" 

W tym rozwiązaniu, układ sprawdza istnienie zmiennej o nazwie titleVar: jeśli ona istnieje (i to nie jest równa zeru) następnie układ używa wartości titleVar do ustawienia jako tytuł, w przeciwnym razie do predefiniowanego tytułu (w naszym przypadku: "Ten tytuł został ustawiony z układu! ") z pliku układu, spróbuj sam i skomentuj // definicję titleVar z szablonu podrzędnego i zobacz wyniki
Mam nadzieję, że to rozwiązanie może pomóc innym :)

Powiązane problemy