2017-06-12 61 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