7

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

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

我怎样才能循环这个?我想做类似的事情:

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

4 回答 4

6

您可以尝试以下

{% for key, item in list%}
  <option>{{ item }}</option>
{% endfor %}
于 2016-01-20T14:34:06.053 回答
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
    }
}
于 2016-02-07T23:31:20.857 回答
0

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

于 2016-01-27T12:58:14.437 回答
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 %}

我希望这会帮助你。

于 2017-04-19T10:03:26.073 回答