Sto usando Jade (senza Express, solo per il template HTML statico) - che ho capito come in grado di creare partial, il che significa che lo scope non è un problema, ma questo non sembra essere il caso e non riesco a trovare alcun riferimento a questo caso d'uso.Jade templating, ambito variabile incluso
master.jade
!!! 5
html
block vars
- var slug= 'home'
head
block pagetitle
title Static HTML
link(rel='stylesheet', href='css/styles.css')
body(class= slug)
.wrapper
include includes/header
include/header.jade
.header
ul
li(class= slug)
sintassi
Ho provato varianti tra cui #{slug}
e sempre ottenere l'errore "slug non è definito" all'interno del includes/header.jade
file - è possibile farlo?
EDIT: Quindi la risposta come indicato da Dave Weldon nei commenti qui sotto è che la variabile è disponibile quando incluso nel master.jade ma il mio comando build compilata tutti file di giada tra cui la include in proprio, a quale punto la variabile non è chiaramente definita.
così stai dicendo l'inclusione non avrà spazio su quella variabile? Vorrei evitare un mixin dato il contenuto del mio file include include/header.jade - il mio esempio è stato abbastanza semplificato! Ma se stai dicendo che non posso ereditare la variabile come questa suppongo di non avere scelta –
in realtà funziona bene :) grazie - sicuramente usando mixin di più - non così male come pensavo - grazie ancora –
Sì, mi sono reso conto che non l'ho fatto in realtà rispondi alla tua domanda Quindi il tuo codice originale funziona bene se hai appena eseguito 'jade master.jade' - riceverai un errore se compili' includes/header.jade'. Personalmente sono un grande fan dei mix e li uso il più possibile. Penso che sia la soluzione migliore anche in questo caso, dal momento che è possibile specificare quali argomenti il mixin può assumere, e jade non si lamenterà se chiedete di compilare l'inclusione. –