在Meteor.js模板中打印循环索引

Saj*_*mad 7 javascript handlebars.js meteor

我在meteorjs中有一个对象列表,我在meteorjs模板中迭代

{{#each objects}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)

在模板中我想打印循环迭代的次数.也就是说,如果对象列表的长度为100,我想在模板中打印1到100的数字.我怎样才能做到这一点?

Aks*_*hat 11

如果不在助手中给出索引,就不能这样做

Template.yourtemplatename.object_with_index = function() {
    var objects = Template.yourtemplatename.objects();

    for(var i = 0; i=objects.length; i++) {
        objects[i].index = i;
    }

    return objects;
}
Run Code Online (Sandbox Code Playgroud)

然后做:

{{#each object_with_index}}
    <p>This is number {{index}}</p>
{{/each}}
Run Code Online (Sandbox Code Playgroud)

不是最漂亮的方式,但其他变化基本上会在引擎盖下做同样的事情(例如,如果你使用了map)

  • 我认为循环中有一个错误:`for(var i = 0; i = objects.length; i ++)`不应该是:`for(var i = 0; i <objects.length; i ++)`? (2认同)

wai*_*kuo 8

如果object是游标,则可以使用其map方法:

Template.yourtemplatename.objects = YourCollection.find().map(function(document, index){
    document.index = index;
    return document;
});
Run Code Online (Sandbox Code Playgroud)