如何编写boundHelper来迭代Ember.js中的地图

时间:2013-05-19 23:39:32

标签: ember.js handlebars.js

我有一个包含Ember.Map的模型,我想在模板中渲染该地图的内容。

我尝试过使用下面的自定义绑定帮助程序,但是在地图中添加/删除值时,模板不会重新渲染。

基本上我只想复制{{#each}}对地图的行为。

Ember.Handlebars.registerBoundHelper('eachInMap', function(map, block) {
  out = "";
  map.forEach(function(k,v) {
    out += block.fn(v)
  });
  return new Handlebars.SafeString(out);
}, /* what dependencies to put here? */);

由模板调用

{{#eachInMap myMap}} foo bar {{/eachInMap}}

1 个答案:

答案 0 :(得分:0)

结帐https://github.com/emberjs/ember.js/pull/2659。 基本上,boundHelpers目前不支持块抱歉。

目前的解决方法是创建一个非绑定帮助程序并将其包装在{{#bind}}块中。