Positional index in Ember.js collections iteration

前端 未结 8 784
梦如初夏
梦如初夏 2020-12-01 11:08

Is there a way to get positional index during iteration in ember.js?

{{#each itemsArray}}
     {{name}}
{{/each}}

I\'m looking for a way to

相关标签:
8条回答
  • 2020-12-01 11:24

    I think you could probably do something like this too

    //add index property to all each queries
    Handlebars.registerHelper('each', function(context, block) {
        var ret = "";
        for(var i=0, j=context.length; i<j; i++) {
            context[i].index = i;
            ret = ret + block(context[i]);
        }
        return ret;
    });
    
    0 讨论(0)
  • 2020-12-01 11:27

    It's old question but still gets a lot of hits. In the current version of Ember.JS one can use _view.contentIndex to display current index inside the loop.

    {{#each}}
        Index: {{_view.contentIndex}}
    {{/each}}
    

    If you need an adjusted index (for instance starting from 1) then there is a possibility of creating reusable helper increment

    Ember.Handlebars.registerBoundHelper('increment', function(integer) {
        return integer + 1;
    });
    

    then you would use it in the following way

    {{#each}}
        Index: {{increment _view.contentIndex}}
    {{/each}}
    

    Update

    Starting with ember 1.11 you can do as well

    {{#each people as |person index|}}
       Index: {{increment index}}
    {{/each}}
    
    0 讨论(0)
提交回复
热议问题