Come posso definire le variabili globali nei nunjucks?

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