В метеоре есть способ получить доступ к индексу массива в пробелах
Я использую ветку метеорной акулы.
Есть ли способ получить доступ к индексу массива внутри каждого помощника блока в пробелах?
Я ищу что-то подобное.
{{#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 в каждом цикле просто равным текущему значению.