我前面的问题:遍历杰奇在项目Frontmatter阵列
menu_links:
- donate: "/donate"
- shop: "/shop"
我的循环:
{% for menu_link in page.menu_links %}
<div><a class="menu-item" href="{{ menu_link[1] }}">{{ menu_link[0] }}</a></div>
{% endfor %}
我在做什么错在这里?
我前面的问题:遍历杰奇在项目Frontmatter阵列
menu_links:
- donate: "/donate"
- shop: "/shop"
我的循环:
{% for menu_link in page.menu_links %}
<div><a class="menu-item" href="{{ menu_link[1] }}">{{ menu_link[0] }}</a></div>
{% endfor %}
我在做什么错在这里?
它被定义被解析的方式:[{"donate"=>"/donate"}, {"shop"=>"/shop"}]
这样你就能够与访问它们:
{{page.menu_links[0]['donate']}}
{{page.menu_links[1]['shop']}}
一个更好的将是:
menu_links:
donate: "/donate"
shop: "/shop"
所以你可直接访问:
{{page.menu_links['donate']}}
{{page.menu_links['shop']}}
然后您的原始代码将工作。
解决方案:
{% for menu_link in page.menu_links %}
{% for item in menu_link %}
<div><a class="menu-item" href="{{ item[1] }}">{{ item[0] }}</a></div>
{% endfor %}
{% endfor %}
每个项目需要通过第二次,以获得键/值对中的每个menu_link的循环。
'item'不是无证的;只是在for循环中声明。它可以是任何东西,即在'{%for foo in menu_link%}'中的'foo'和''在menu_link%中的%'中''' – DavChana
更新了解决方案:我需要在循环内循环以获得密钥/ val对。你的评论澄清了什么,我顺便说一句 – user3411192
谢谢,但我需要一个编程解决方案,因为我使用的是Jekyll Admin,用户可能需要在将来更改密钥和/或值。 – user3411192