我正在尝试将Ember.js group-helper与 Ember App Kit 一起使用。
由于group
没有破折号,app/helpers/group.js
无法解决,所以我app.js
在EAK 文档中明确加载了帮助程序。
app/helpers/group.js
export default function(option) {
var data = options.data,
fn = options.fn,
view = data.view,
childView;
childView = view.createChildView(Ember._MetamorphView, {
context: Ember.get(view, 'context'),
template: function(context, options) {
options.data.insideGroup = true;
return fn(context, options);
}
});
view.appendChild(childView);
}
在app.js
import GroupHelper from 'appkit/helpers/group';
Ember.Handlebars.registerBoundHelper('group', GroupHelper);
在模板中
<ul>
{{#group}}
{{#each}}
<li>{{prop1}} {{prop2}}</li>
{{/each}}
{{/group}}
</ul>
我得到一个断言失败:
registerBoundHelper-generated helpers do not support use with Handlebars blocks.
(该应用程序在没有组助手的情况下运行良好)
我知道这group-helper
是实验性的,但这是否意味着它不适用于当前的 Ember 版本?
如果这应该工作,我错过了什么?
在@Stakoov 的评论之后编辑:我已经从 Ember 1.4.0-beta6 更新到 1.4.0,并且我正在使用 Handlebars 1.3.0。
我已经尝试过 EAK 方式,重命名group
为group-item
(因为 EAK 解析器需要破折号)。
app/helpers/group-item.js
export default Ember.Handlebars.makeBoundHelper(function(options) {
// (...snip...)
});
在模板中:
<ul>
{{#group-item}}
{{#each}}
<li>{{prop1}}</li>
{{/each}}
{{/group-item}}
</ul>
同样的断言仍然失败。