我正在使用nunjucks创建JSON导出文件。我有一个具有相同名称的变量列表,但末尾有一个递增的数字。我通过以下方式使用for循环:
configurations.all {
resolutionStrategy {
force 'androidx.fragment:fragment:v4:1.1.0-alpha04'
}
}
我希望answer1抓住变量answer1,但是它给了我一个字符串“ {{anwser1}}”。
有什么想法如何使用for循环指向每个变量(answer1,answer2,answer3等)?
答案 0 :(得分:0)
您可以添加一些全局函数或过滤器,以按名称访问上下文(vars范围)。
const nunjucks = require('nunjucks');
const env = new nunjucks.Environment();
env.addGlobal('getContext', function (prop) {
return prop ? this.ctx[prop] : this.ctx;
});
const tpl = `{% for i in range(1, 4)%} {{ getContext('a' + i) }} {% endfor %}`;
const output = env.renderString(tpl, {a1: 10, a2:20, a3: 30, b: 1, c: 2});
console.log(output);