html - Nunjucks 嵌套变量
问题描述
Nunjucks 中可以嵌套变量吗?我需要能够在包含 Nunjucks 变量的数据库中存储一个字符串,但它似乎不起作用。这是我需要做的一个例子:
dict = {
name: 'John',
lastname: 'Smith',
greeting: 'Hello, my name is {{ name }} {{ lastname }}'
}
然后能够做到
<span>{{greeting}}</span>
但它输出:
'Hello, my name is {{ name }} {{ lastname }}'
我之所以需要它,是因为我有一个带有一些带有孔的描述模板的数据库,并且我有一个带有值的数据库,我需要能够将它们组合起来。但它并不总是相同的值,所以我不能对它们进行硬编码。
解决方案
最简单的方法是添加global
或filter
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);