[英]Variable controller in ember.js
我对使用 Ember.js 很陌生,这让我很困惑。 在 ember.js 中路由时有没有办法使用变量控制器?
我会试着解释一下:
我有一个我需要由不同控制器控制并由不同模板表示的模型列表。 例如:如果我有路线items/:item_id
,我想做这样的事情:
App.ItemRoute = Ember.Route.extend({
model: function(params) {
return items[params.lesson_id]; // edit: should be item_id not lesson_id
},
setupController: function(controller, model) {
controller.set("model", model);
},
renderTemplate: function(controller, model) {
this.render(model.template || "item", {
controller: model.controller || "ItemController"
});
}
});
这里的 ember 指南: http : this.render
显示this.render
与控制器选项的使用,但是当我传入任何东西(甚至是"ItemController"
)时,我收到这个错误:
Error while loading route: Error: You passed controller: 'ItemController' into the render method, but no such controller could be found.
有一个更好的方法吗?
您应该使用控制器名称item
,而不是ItemController
并且必须定义App.ItemController
。
App.ItemRoute = Ember.Route.extend({
model: function(params) {
return items[params.lesson_id];
},
setupController: function(controller, model) {
controller.set("model", model);
},
renderTemplate: function(controller, model) {
this.render(model.template || "item", {
controller: model.controller || "item"
});
}
});
使用this.controllerFor('item')
为模板指定一个特定的控制器,您必须定义该控制器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.