16

我有以下模型:

items: {
    someId1: 
        {
            property1....
        },
    someId2: {...},
    someIdN: {...}
}

我想得到一个for在我的模板(nunjucks)中获得一个循环,它会遍历所有“someId”。有谁知道怎么做?普通的 for 循环不起作用,因为它不是数组,而且由于我使用“someId..”作为另一个模板中的引用,因此我无法将其放入数组中。

任何帮助都是极好的。

4

2 回答 2

40

这个答案实际上在Nunjucks 主页上是正确的:

<ul>
   {% for name, item in items %}
      <li>{{ name }}: {{ item }}</li>
   {% endfor %}
</ul>

在您的情况下,这将是:

<ul>
   {% for someId, item in items %}
      <li>{{ someId }}: {{ item.property1 }}</li>
   {% endfor %}
</ul>

因为您可以将for循环用于数组和 object/hashes

于 2014-01-10T21:05:00.727 回答
1

您可以像这样使用嵌套循环:

<ul>
  {% for item in items %}
    {% for something in item.someId1 %}
      <li>
        {{ something.property1 }}
      </li>
    {% endfor %}
  {% endfor %}
</ul>

对于这个 json 对象:

items: {
  someId1: {
    property1: "It makes you want to shout! Raise your hands up and..."
  },
  someId2: {...},
  someIdN: {...}
}
于 2018-04-30T18:10:23.623 回答