使用nunjucks,如何定义一些应该始终在所有模板中可用的全局变量?
理想情况下,它们将在环境或配置选项中的某个位置指定,而不必在每次调用nunjucksEnvironment.render
时合并到上下文字典中。
答案 0 :(得分:4)
没有记录(或者可能是建议的),但这有效:
var njglobals = require('nunjucks/src/globals');
njglobals.someVar = 'someValue';
现在,您可以在模板中使用someVar
。
请确保不要覆盖njglobals
对象的任何现有属性(对于nunjucks@1.0.1
,它们是range
,cycler
和joiner
)。
答案 1 :(得分:3)
对某些人来说也许有帮助。在nunjucks中处理全局变量时,可以避免编写任何js代码。
您需要创建一个 _globals.html 文件,其中包含所有全局变量。
{% set some_var1 = "Foo" %}
{% set some_var2 = "Bar" %}
然后将 _globals.html 添加到您需要全局变量的任何页面。例如。的 somePage.html 强>
{% import '_globals.html' as globals %}
<span>{{globals.some_var1 }}</span>
<span>{{globals.some_var2 }}</span>
有关详细信息,请查看http://mozilla.github.io/nunjucks/templating.html#set
答案 2 :(得分:2)
我只是在找这个并来到这里。看起来现在推荐的方法最近在version 1.0.6中添加了。