首页 > 解决方案 > Nunjucks 嵌套变量

问题描述

Nunjucks 中可以嵌套变量吗?我需要能够在包含 Nunjucks 变量的数据库中存储一个字符串,但它似乎不起作用。这是我需要做的一个例子:

dict = {
name: 'John',
lastname: 'Smith',
greeting: 'Hello, my name is {{ name }} {{ lastname }}'
}

然后能够做到

<span>{{greeting}}</span>

但它输出:

'Hello, my name is {{ name }} {{ lastname }}'

我之所以需要它,是因为我有一个带有一些带有孔的描述模板的数据库,并且我有一个带有值的数据库,我需要能够将它们组合起来。但它并不总是相同的值,所以我不能对它们进行硬编码。

标签: htmlsqlwebjinja2nunjucks

解决方案


最简单的方法是添加globalfilter

var nunjucks  = require('nunjucks');
var env = nunjucks.configure();

env.addFilter('render', function(text) {
    return  nunjucks.renderString(text, this.ctx);
});

var res = nunjucks.renderString(
    'name: {{name}}, greeting: {{greeting | render}}', 
    {
        name: 'John',
        greeting: 'Hello {{name}}'
    }
);

console.log(res);

推荐阅读