How can I define global variables in nunjucks?

前端 未结 3 1430
独厮守ぢ
独厮守ぢ 2021-01-12 07:30

Using nunjucks, how can I define some global variables that should always be available within all templates?

Ideally, they would be specified somewhere in the enviro

相关标签:
3条回答
  • 2021-01-12 08:08

    I was just looking for this and came here. Looks like there's now a recommended way which was added in recently in version 1.0.6.

    See Environment.addGlobal.

    0 讨论(0)
  • 2021-01-12 08:23

    It might be also helpfull for someone. It is possible to avoid writing any js code when dealing with global variables in nunjucks.

    You need to create a _globals.html file, which contains all the global variables.

    {% set some_var1 = "Foo" %}
    {% set some_var2 = "Bar" %}
    

    Then include _globals.html to any page, where you need the global variable. E.g. somePage.html

    {% import '_globals.html' as globals %}
    
    <span>{{globals.some_var1 }}</span>
    <span>{{globals.some_var2 }}</span>
    

    For more info please check http://mozilla.github.io/nunjucks/templating.html#set

    0 讨论(0)
  • 2021-01-12 08:34

    It's not documented (or perhaps advised), but this works:

    var njglobals = require('nunjucks/src/globals');
    njglobals.someVar = 'someValue';
    

    You can now use someVar in your templates.

    Be sure not to overwrite any of the existing properties of the njglobals object, though (for nunjucks@1.0.1, they are range, cycler and joiner).

    0 讨论(0)
提交回复
热议问题