2015-03-17 12 views
17

Chciałbym ustawić klasę na znaczniku body, deklarując zmienną w szablonie, który rozszerza podstawowy układ.Prześlij zmienne do układu podstawowego z rozszerzonego szablonu mops/jade

Podczas próby zmienną jest undefined w układzie.

Wygląda na to, że układ jest wykonywany przed rozszerzającym się szablonem lub są wykonywane w różnych zakresach lub coś w tym stylu.

Czy istnieje inny sposób? Czy mixin tu pracował?

_layout.jade:

doctype html 
html(lang="en-au") 
    head 
     meta(charset="utf-8") 
     block css 
    body(class=(body_class || "it-did-not-work")) 
     block header 
     block content 
     block footer 

home.jade:

var body_class = 'i-am-the-home-page' 
extends _layout 
block header 
    h1 home 
+0

podobne do: http://stackoverflow.com/questions/15035624/jade-templating-variable- Zakres-w- –

Odpowiedz

38

Ah ha! Domyśliłam się.

Utwórz blok w górnej części układu podstawowego i dodaj tam swoje zmienne.

_layout.jade:

block variables 
doctype html 
html(lang="en-au") 
    head 
     meta(charset="utf-8") 
     block css 
    body(class=(body_class || "it-did-not-work")) 
     block header 
     block content 
     block footer 

home.jade:

extends _layout 
block variables 
    - var body_class = 'i-am-the-home-page' 
block header 
    h1 home 
+2

dziękuję panu, dokładnie to, czego szukałem. Tak więc zakres dotyczy rozszerzonego szablonu głównego? – undefinederror

+2

Właśnie uratowałeś moje zdrowie psychiczne. Dziękuję Ci. –

+3

Brakuje myślnika przed instrukcją var. Powinien to być '- var body_class = 'i-am-the-home-page''. W przeciwnym razie kod nie zostanie skompilowany jako JavaScript. – nomad

Powiązane problemy