2012-05-17 1 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

Awesome. Благодаря! –

+0

Нет проблем. Удачи. – Sandro

3

Да, только с помощью CoffeeScript для (но позаботьтесь о дополнительных :):

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

jsFiddle example.

+0

Вы уверены: после @things верно? Он работает для меня без него ... – Puce

+0

@Пожалуйста, [кажется, необходимо] (https://github.com/sstephenson/eco#a-note-about-whitespace). Вы используете другую версию Eco? При удалении двоеточия из примера jsFiddle, связанного с ответом, возникает ошибка: «Ошибка: ошибка анализа в строке 3: неожиданный разделитель». – epidemian

+0

Извините, что вы правы, я не использую тот же механизм шаблонов. – Puce