Ember:如何在列表中每n个元素渲染一个元素?

mph*_*ize 0 javascript each pagination list ember.js

在搜索和阅读文档后,我无法找到解决此问题的直接解决方案:

从ArrayController渲染项目列表,我想每N个元素插入一个位置或页面指示符.

我很感激Ember的任何想法都可以做到这一点!

通常我会假设,这可以在模板中处理,类似于......

each listitems
    if index % 5 == 0
        insert indicator
Run Code Online (Sandbox Code Playgroud)

...但是Ember没有暴露索引,Handlebars模板应该是无逻辑的.

我能想到的第二种方法是使用ArrayController并在数组中的每个第n个对象上设置一个属性,但为什么对象需要知道这个?设置一个属性感觉就像混乱和很多错误的可能性.

任何想法都将受到高度赞赏!

the*_*ack 5

你可以建立自己的帮手.顺便说一句,您可以使用_view.contentIndex每个内部访问索引.所以你可以编写一个自定义帮助器,基本上插入所需的html.

Ember.Handlebars.registerBoundHelper('indicator', function(index,options){
       var html = '';
       if(index%2) {
          html = '<hr />';
       }
       return new Ember.Handlebars.SafeString(html);
});
Run Code Online (Sandbox Code Playgroud)

并通过传递索引来调用它.这是工作jsbin http://emberjs.jsbin.com/niguwa/1/edit