2012-05-17 78 views
20

是否可以使用eco模板引擎獲取當前循環索引?在eco模板中獲取循環索引

例如在Jinja2的,你可以做

{% for var in array %} 
    {{ loop.index0 }} 
{% endfor %} 

如果不是有沒有的索引處獲得的更地道的方式?

回答

40

CoffeeScript website

# Fine five course dining. 
courses = ['greens', 'caviar', 'truffles', 'roast', 'cake'] 
menu i + 1, dish for dish, i in courses 

也可以寫成

courses = ['greens', 'caviar', 'truffles', 'roast', 'cake'] 
for dish, i in courses 
    menu i + 1, dish 

對於生態模板,這樣的事情應該這樣做:

<% for val, idx in @varName: %> 
<span>The index is <%= idx %> and value is <%= val %></span> 
<% end %> 
+0

對,但你會怎麼做,在一個生態模板的上下文。 –

+0

太棒了。謝謝! –

+0

沒問題。祝你好運。 – Sandro

3

是的,只是用CoffeeScript for(但照顧額外的:):

<% for thing, i in @things: %> 
    <%= i %>: <%= thing %> 
<% end %> 

jsFiddle example

+0

你確定:@things之後是正確的嗎?它適用於我沒有它... – Puce

+0

@Puce它[似乎是必要的](https://github.com/sstephenson/eco#a-note-about-whitespace)。您是否使用不同的Eco版本?當從連接到答案的jsFiddle示例中去除冒號時,會出現一個錯誤:'錯誤:第3行解析錯誤:意外的dedent'。 – epidemian

+0

對不起,我沒有使用相同的模板引擎。 – Puce