如何在nunjucks中定义全局变量?

时间:2013-12-29 06:23:40

标签: node.js nunjucks

使用nunjucks,如何定义一些应该始终在所有模板中可用的全局变量?

理想情况下,它们将在环境或配置选项中的某个位置指定,而不必在每次调用nunjucksEnvironment.render时合并到上下文字典中。

3 个答案:

答案 0 :(得分:4)

没有记录(或者可能是建议的),但这有效:

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

现在,您可以在模板中使用someVar

请确保不要覆盖njglobals对象的任何现有属性(对于nunjucks@1.0.1,它们是rangecyclerjoiner )。

答案 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中添加了。

请参阅Environment.addGlobal