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

Ember: How to render an element every n elements in a list?

本文关键字:元素 一个 列表 Ember      更新时间:2023-09-26

在搜索和阅读文档后,我找不到这个问题的直接解决方案:

从ArrayController呈现项目列表时,我希望每隔N个元素插入一个位置或页面指示符

我将感谢任何关于Ember方式的想法!

通常我会假设,这可以在模板中处理,比如。。。

each listitems
    if index % 5 == 0
        insert indicator

但是Ember没有公开索引,Handlebars模板应该是无逻辑的。

我能想到的第二种方法是使用ArrayController,并在数组中的每个第n个对象上设置一个属性,但为什么对象需要意识到这一点?设置一个属性感觉像是杂乱无章,而且很有可能出错。

任何想法都将不胜感激!

您可以构建自己的助手。顺便说一下,您可以使用每个内部的_view.contentIndex访问索引。因此,您可以编写一个自定义帮助程序,基本上插入所需的html。

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

通过传递索引来调用它。这是正在工作的jsbinhttp://emberjs.jsbin.com/niguwa/1/edit