2012-05-17 7 views
20

Có thể lấy chỉ số vòng lặp hiện tại bằng cách sử dụng công cụ mẫu sinh thái không?Lấy chỉ số vòng lặp trong một mẫu sinh thái

Ví dụ trong Jinja2 bạn có thể làm

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

Nếu không có cách nào nhiều thành ngữ nhận tại chỉ số?

Trả lời

40

Từ CoffeeScript website:

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

cũng có thể được viết như

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

Đối với các mẫu sinh thái, một cái gì đó như thế này nên làm điều đó:

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

Phải nhưng bạn sẽ làm điều đó như thế nào trong ngữ cảnh của mẫu sinh thái. –

+0

Tuyệt vời. Cảm ơn! –

+0

Không sao cả. Chúc may mắn. – Sandro

3

Có, chỉ sử dụng CoffeeScript cho (nhưng chăm sóc thêm :):

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

jsFiddle example.

+0

Bạn có chắc chắn rằng: sau khi @things là chính xác? Nó hoạt động cho tôi mà không có nó ... – Puce

+0

@ Đưa nó [dường như là cần thiết] (https://github.com/sstephenson/eco#a-note-about-whitespace). Bạn đang sử dụng phiên bản Eco khác? Khi loại bỏ dấu hai chấm khỏi ví dụ jsFiddle được liên kết trên câu trả lời, lỗi được nêu lên: 'Lỗi: Lỗi phân tích cú pháp trên dòng 3: suy luận không mong muốn'. – epidemian

+0

Xin lỗi bạn đã đúng, tôi không sử dụng cùng một công cụ mẫu. – Puce