NUNJUKS:For循环创建变量列表,但创建字符串

时间:2019-02-25 18:46:59

标签: nunjucks

我正在使用nunjucks创建JSON导出文件。我有一个具有相同名称的变量列表,但末尾有一个递增的数字。我通过以下方式使用for循环:

configurations.all {
    resolutionStrategy {
        force 'androidx.fragment:fragment:v4:1.1.0-alpha04'
    }
}

我希望answer1抓住变量answer1,但是它给了我一个字符串“ {{anwser1}}”。

有什么想法如何使用for循环指向每个变量(answer1,answer2,answer3等)?

1 个答案:

答案 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);