我想动态渲染一个模板,如下所示:
{{#each layout in layouts}}
{{render layout.get('type') layout}}
{{/each}}
问题是 render 不需要变量作为它的第一个参数,所以在旧的 EmberJS 版本中,可以通过注册一个助手来解决这个问题:
Ember.Handlebars.registerBoundHelper('render_layout',
function(callingContext, layout, options) {
return Ember.Handlebars.helpers.render.call(callingContext,
layout.get('type'), 'layout', options);
});
并在模板中:
{{#each layout in layouts}}
{{render_layout this layout}}
{{/each}}
不幸的是,这个东西在较新的 ember 版本中不起作用。Ember.Handlebars.helpers.render.call
预计有 3 个参数,但我无法正确理解它们。有任何想法吗?
我试过了:(this, layout.get('type'), options)
并在模板中:
{{#each layout in layouts}}
{{render_layout layout}}
{{/each}}
I get Uncaught TypeError: Cannot read property 'pushChildView' of null
...以及许多其他人。
任何建议将不胜感激。