In Spacebars, how to enter data between iterations {{# each}}?


Hello! I’m using Spacebars and Meteor 1.2. In {{#each post}}, how to enter data after a specific iteration. For example after the second iteration.

Example: 1º iteration | 2º iteration | data | 3º iteration | 4º iteration …


If your html structure allows it, you can use the new @index helper available within each


You might want to call a helper from inside the #each loop.

in HTML file:

<template name="posts">
  {{#each posts}}
    <span>{{this.number}} iteration &#124;</span>{{#if isSecondPost this}}<b>data</b> &#124;{{/if}}

in CoffeeScript file:

  isSecondPost: (post) ->
    post.number is 2


This is silly little hack, but it works:


p : 0,
theList: function(){
    p = 0;
    return MyList.find();
pos: function(){
    return p;



{{#each theList}}
           {{name}}  {{pos}}


What happens when you delete or update docs? Or insert new ones? I assume p would go out of sync.


No, it works, each time theList() is accessed, it resets p


Depends what you mean by inserting data.

in 1.2 you can access {@index} in #each and react based on that.

But I am used to create helpers like firstThree which do [0…3] in coffeescript.
Or inside helpers use map and in case of index being something react some special way


How about something like this:

{{#each post}}
  {{> post}}
  {{{data @index}}}
  posts: function() {
    return Posts.find();
  data: function(index) {
    var val = index%2;
    if (val == 0)
      return 'data';