如何在每个流星中获得指数

时间:2014-11-05 13:53:44

标签: meteor

如何获取meteor中的每个循环索引。@ index不起作用。请帮助我。

Template.apichange.helpers({
    api_rest_data: function () 
    {     
        return Session.get("api_rest_list");
    }
   });




 {{#each api_rest_data}}
                    <tr>
                        <td><select id="methodname"> <option id="optn" value="{{ method_name }}"> {{ @index }}  </option></select></td>

                    </tr>
   {{/each}} 

2 个答案:

答案 0 :(得分:2)

需要另一个助手,请查看我在Meteor上的书中使用的my solution

Template.registerHelper('withIndex', function (list) {
    var withIndex = _.map(list, function (v, i) {
        v.index = i;
        return v;
    });
    return withIndex;
});

这会注册一个名为withIndex的全局帮助程序。每当你在each上下文中使用的数组上调用它时,它将允许你使用{{index}},就像使用{{@index}}来分辨每个数组中的哪个位置一样元素有。

调整包含标记,首先将api_rest_data传递给withIndex

{{#each withIndex api_rest_data}}

答案 1 :(得分:0)

非常感谢Stephan提供的这个中间解决方案。这是我的版本;它允许变量{{index}}&amp; {{value}}上下文中的{{#each}}

Template.registerHelper('withIndex', function (array) {
  return _.map(array, function (val, i) {
    return {
      'index': i,
      'value': val
    };
  });
});
根据{{​​3}},根据Handlebars / Spacebars规范,{{@index}}上下文应该很快就会出现在新的Meteor版本中。