Javascript ember.js中的变量控制器
我对使用Ember.js非常陌生,这让我非常困惑。在ember.js中进行路由时,是否有方法使用变量控制器 我试着解释一下: 我有一个模型列表,需要由不同的控制器控制,并由不同的模板表示。例如:如果我有路径Javascript ember.js中的变量控制器,javascript,ember.js,Javascript,Ember.js,我对使用Ember.js非常陌生,这让我非常困惑。在ember.js中进行路由时,是否有方法使用变量控制器 我试着解释一下: 我有一个模型列表,需要由不同的控制器控制,并由不同的模板表示。例如:如果我有路径items/:item_id,我想执行以下操作: App.ItemRoute = Ember.Route.extend({ model: function(params) { return items[params.lesson_id]; // edit: should
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"
});
}
});
余烬指南如下:
显示此的用法。使用控制器选项渲染,但当我传入任何内容(即使是“ItemController”
)时,我收到以下错误:
加载路由时出错:错误:您将控制器:“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"
});
}
});
使用('item')的
this.controller
为模板指定特定的控制器,并且必须定义该控制器