【发布时间】:2014-06-01 18:52:32
【问题描述】:
我正在尝试为以下情况实施帮助程序:
{{#inRange collection 1 3}}
{{view App.SomeView content=this}}
{{/inRange}}
所以这个助手的目的是只渲染一些集合中的几个项目 -> 这由第二个和第三个参数指定 -> 开始和结束。
到目前为止,我正在尝试这样的事情:
Ember.Handlebars.registerHelper('inRange', function (collection, start, end, options) {
var res = '';
var data = Ember.Handlebars.get(this, collection);
data = data.slice(start, end);
data.forEach(function (item) {
res += options.fn(item);
});
return res;
});
但如果我需要在块助手中渲染view,这将不起作用。我查看了native Ember each 的实现,但他们正在以其他方式进行。
他们使用这样的东西:
options.hash.dataSourceBinding = path;
return Ember.Handlebars.helpers.collection.call(this, 'Ember.Handlebars.EachView', options);
问题在于我找不到有关这些代码行的任何文档。
有谁知道我如何制作自定义 each 助手,或者知道 Ember each 在内部如何工作?
【问题讨论】: