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

标签 javascript list ember.js pagination each

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

从 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);
});

并通过传递索引来调用它。这是正在运行的 jsbin http://emberjs.jsbin.com/niguwa/1/edit

关于javascript - Ember : How to render an element every n elements in a list?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25662429/

相关文章:

java - 如何检查对象 ArrayList 是否包含没有循环的对象的单个属性

Java : verifying if an object already exists in a List?

javascript - Ember 如何从父 Controller 访问子 Controller

javascript - Ember js 从 Controller 获得 this.get() 请求的回调?

javascript - iOS 如何访问 CSS Url 中的库?

javascript - 在 JavaScript 循环中使用全局变量更改的问题

javascript - Async.js everySeries 不会因错误而停止

javascript - rails ujs - javascript 不执行

c# - 如何将列表填充为类对象?

javascript - Ember .get 未返回正确的值