2015-01-18 2 views
2

Я хотел бы добавить счетчик в таблицу с использованием шаблонов Handlebars. У меня есть шаблон Рули, как так:Handlebars template - лучший способ добавить добавочную переменную

<script type="text/template" id="user-home-main-table-template"> 

    <% var i=0 %> 
    <table class="table"> 
     <thead> 
     <tr> 
      <th>#</th> 
      <th>Team Name</th> 
      <th>Club</th> 
      <th>Sport</th> 
      <th>Delete?</th> 
     </tr> 
     </thead> 
     <tbody> 
     {{#teams}} 
     <tr> 
      <td><%=i%></td> 
      <td>{{teamName}}</td> 
      <td>{{club}}</td> 
      <td>{{sport}}</td> 
      <td>delete</td> 
     </tr> 
     {{/teams}} 
     </tbody> 
    </table> 
</script> 

это работает, но переменная я не увеличивает, что лучший способ решить эту проблему?

+0

похоже, что это близко http://stackoverflow.com/questions/11884960/how-to-get-index-in-handlebars-each-helper, но может быть устаревшим –

ответ

1

В Рулях, вы можете получить доступ к индексу токовой петли как это:

{{#each array}} 
    {{@index}}: {{this}} 
{{/each}} 

Где {{@index}} будет оценивать на текущую итерацию. Например: 0, 1, 2 и т.д.

Вы можете найти дополнительную документацию здесь: http://handlebarsjs.com/builtin_helpers.html#iteration

Надеется, что это помогает.

4

Вы можете использовать {{@index}} для доступа к текущему индексу

{{#each array}} 
    {{@index}}: {{this}} 
{{/each}} 

Но этот индекса будет начинаться с иногда вы, вероятно, не хотите.

В этом случае вы можете создать и зарегистрировать вспомогательный метод для увеличения индекса.

Handlebars.registerHelper("inc", function(value, options) 
{ 
    return parseInt(value) + 1; 
}); 

Вы можете использовать его в выражении рул используя inc ключевое слово, например:

{{inc @index}} 

Но если вы не хотите делать, что есть еще один простой способ добиться того же.

{{@index_1}} 

Дайте ему попробовать.

Смежные вопросы