在nunjucks中循环穿过对象?

时间:2016-01-20 14:31:44

标签: javascript json nunjucks

我有一个名为“list.json”的文件设置如下:

{
  "thing1": "Thing1",
  "thing2": "Thing2",
  "thing3": "Thing3"
}

我该如何循环?我想做点什么:

{% for item in list%}
  <option>{{ thing }}</option>
{% endfor %}

4 个答案:

答案 0 :(得分:4)

您可以尝试以下

{% for key, item in list%}
  <option>{{ item }}</option>
{% endfor %}

答案 1 :(得分:1)

您是否导入了JSON?如果没有,在渲染JS中添加一个变量:

list: JSON.parse(fs.readFileSync('list.json'))

如果您多次使用它,请在文件顶部添加一个变量。

var LIST = JSON.parse(fs.readFileSync('list.json'))

也可以使用异步方法,但需要一些嵌套:

fs.readFile('list.json', function(err, list) {
    env.render('template.html', {
        list: list,
        //other data
    }
}

答案 2 :(得分:0)

如果您使用的是Gulp,这可以帮助您:http://www.zell-weekeat.com/nunjucks-with-gulp#Populating-HTML-with-data

答案 3 :(得分:0)

您应该首先在后端创建一个对象数组:

var things = [];

things.push({id : 'thing1', name : 'Thing1'});
things.push({id : 'thing2', name : 'Thing2'});
things.push({id : 'thing3', name : 'Thing3'});

现在在前端你可以像下面一样遍历这个数组:

{% for thing in things %}
<option value="{{ thing.id }}"> {{ thing.name }}</option>
{% endfor %}

我希望这会帮助你。