我有这种情况,我将模板名称存储在变量中。我注意到,如果你有例如
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? 有什么建议吗?
干杯
答案 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
的使用。也许是凌晨没有帮助,但我现在想不出更好的选择。