Подтвердить что ты не робот

В метеор есть способ доступа к индексу массива в пробелах

Я использую ветку метеорной акулы.

Есть ли способ получить доступ к индексу массива внутри каждого вспомогательного блока в пробелах?

Я ищу что-то вроде этого.

{{#each humans}}
  {{this.arrayIndex}}
{{/each}}
4b9b3361

Ответ 1

метеоp >= 1.2

Spacebars получила много функциональности в 1.2, включая нативный @index. Помощники больше не нужны для решения этой проблемы - вы можете просто сделать это:

<template name="showHumans">
  <ul>
    {{#each humans}}
      <li>{{@index}}: {{name}}</li>
    {{/each}}
  </ul>
</template>

метеор 1.2

В главе "анимация" я видел аналогичный пример с помощью шаблонных помощников в метеоритной книге. Вы можете применить map к курсору людей, чтобы добавить индекс, например:

Template.showHumans.helpers({
  humans: function() {
    return Humans.find({}, {sort: {hotness: -1}}).map(function(human, index) {
      human.rank = index;
      return human;
    });
  }
});
<template name="showHumans">
  <ul>
    {{#each humans}}
      <li>{{rank}}: {{name}}</li>
    {{/each}}
  </ul>
</template>

Ответ 2

Как взято из документации пространственных систем:

Вы можете использовать специальную переменную @index в теле #each, чтобы получить 0 на основе текущего отображаемого значения в последовательности.

Ответ 3

В Meteor 1.0.2.1 вы можете сделать следующее:

{{#each humans}}
  {{this}}
{{/each}}

Это потому, что #each выполняет итерацию через массив, делая это в каждом цикле просто равным текущему значению.