我有一个名为“list.json”的文件设置如下:
{
"thing1": "Thing1",
"thing2": "Thing2",
"thing3": "Thing3"
}
我该如何循环?我想做点什么:
{% for item in list%}
<option>{{ thing }}</option>
{% endfor %}
答案 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 %}
我希望这会帮助你。