1

我正在尝试将Ember.js group-helper与 Ember App Kit 一起使用。

由于group没有破折号,app/helpers/group.js无法解决,所以我app.jsEAK 文档中明确加载了帮助程序。

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 方式,重命名groupgroup-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>

同样的断言仍然失败。

4

0 回答 0