EmberJs:在Handlebars-helper中渲染模板

时间:2013-02-12 08:28:10

标签: ember.js handlebars.js helpers

我有这种情况,我将模板名称存储在变量中。我注意到,如果你有例如

var config = { view: "PeopleView", .... } ;

你无法做到

{{view App[config.view]}}

如果可以,我仍然对解决方案感兴趣! 无论如何,我决定用Handlebars帮助器解决这个问题:

{{setVariableView config}}

...

Ember.Handlebars.registerBoundHelper('setVariableView', function(value, options) {
    return App[value.view].create(value) ; // <-- this doesn't work :)
}) ;

此时我不知道如何调用已编译的PeopleView? 有什么建议吗?

干杯

1 个答案:

答案 0 :(得分:1)

首先,您需要像以前一样创建配置对象:

App.config = Ember.Object.create({ view: 'App.MyView' });

然后你想要注册你已经完成的帮助,但是需要稍微修改一下,因为当你采用这种方法时需要手动append查看:

Ember.Handlebars.registerBoundHelper('setVariableView', function(value, options) {
    var view = eval(value.view).create();
    view.append();
});

现在您可以将配置文件传递给setVariableView帮助程序,它将呈现传递给您的配置的视图:

{{setVariableView App.config}}

唯一关注的是eval的使用。也许是凌晨没有帮助,但我现在想不出更好的选择。