2017-06-12 142 views
0

我前面的问题:遍历杰奇在项目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 %} 

我在做什么错在这里?

回答

1

它被定义被解析的方式:[{"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']}} 

然后您的原始代码将工作。

+0

谢谢,但我需要一个编程解决方案,因为我使用的是Jekyll Admin,用户可能需要在将来更改密钥和/或值。 – user3411192

0

解决方案:

{% 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的循环。

+0

'item'不是无证的;只是在for循环中声明。它可以是任何东西,即在'{%for foo in menu_link%}'中的'foo'和''在menu_link%中的%'中''' – DavChana

+0

更新了解决方案:我需要在循环内循环以获得密钥/ val对。你的评论澄清了什么,我顺便说一句 – user3411192