Usando i nunjucks , come posso definire alcune variabili globali che dovrebbero essere sempre disponibili in tutti i modelli?
Idealmente, sarebbero specificati da qualche parte nell’ambiente o opzioni di configurazione e non devono essere uniti nel contesto dettato con ogni chiamata a nunjucksEnvironment.render
.
Stavo solo cercando questo e sono venuto qui. Sembra che ora ci sia un modo consigliato che è stato aggiunto recentemente nella versione 1.0.6 .
Vedi Environment.addGlobal .
Non è documentato (o forse consigliato), ma funziona così:
var njglobals = require('nunjucks/src/globals'); njglobals.someVar = 'someValue';
Ora puoi usare someVar
nei tuoi modelli.
Assicurati di non sovrascrivere nessuna delle proprietà esistenti dell’object njglobals
, sebbene (per [email protected]
, siano range
, cycler
e joiner
).
Potrebbe essere anche utile per qualcuno. È ansible evitare di scrivere qualsiasi codice js quando si ha a che fare con variabili globali in nunjucks .
Devi creare un file _globals.html , che contiene tutte le variabili globali.
{% set some_var1 = "Foo" %} {% set some_var2 = "Bar" %}
Quindi includi _globals.html in qualsiasi pagina, dove hai bisogno della variabile globale. Ad esempio somePage.html
{% import '_globals.html' as globals %} {{globals.some_var1 }} {{globals.some_var2 }}
Per maggiori informazioni, consultare http://mozilla.github.io/nunjucks/templating.html#set