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

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

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

Я ищу что-то подобное.

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

3 ответа

Решение

метеор>= 1.2

Пробелы приобрели много функциональности в 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>

Как принято из документации по пробелам:

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

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

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

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

Другие вопросы по тегам