情况是我希望我的{{ren}}
自动从提供的余烬数据模型的名称中推断控制器名称。
例如在{{渲染'动物'动物}}
中,如果动物
是Cat
,我希望模板是用CatController
渲染的
渲染助手现在似乎接受了控制器=
参数,但随后将该参数视为文字而不是变量。
https://github.com/emberjs/ember.js/blob/master/packages/ember-routing-handlebars/lib/helpers/render.js#L115
目前,我只是将表示代码(模板需要的)放在目标模型中,我认为这很糟糕。
实现这种多态相似渲染的正确方法是什么?
您所描述的功能正是Bember所做的,如此处所述http://emberjs.com/guides/templates/rendering-with-helpers
{{render 'animal' animal}}
将呈现动物模板,以及动物模型、动物控制器和动物视图(如果存在)。
您需要使用渲染助手的替代方案,您可以在其中指定所需的一切。
this.render('TEMPLATENAME', {
into: 'TEMPLATE/LAYOUT',
outlet: 'OUTLET NAME IN TEMPLATE',
controller : 'CONTROLLER NAME FOR CURRENT TEMPLATE', /* optional */
model : 'MODEL NAME FOR CURRENT TEMPLATE', /* optional */
});
您可以在renderTemplate函数中直接从您的路由添加它
App.ApplicationRoute = Ember.Route.extend({
model: function(params){ },
renderTemplate: function(){
this._super(); /* Add it to prevent weird behaviour */
this.render('header', {
into: 'application',
outlet: 'header',
controller: 'headerMenu',
)};
},
});