Javascript Ember.js重写的控制器不';我不能参考原始模型吗?
我有一个带有Javascript Ember.js重写的控制器不';我不能参考原始模型吗?,javascript,ember.js,routes,Javascript,Ember.js,Routes,我有一个带有renderTemplate的Ember.js路由,它允许模型设置控制器/模板。我能够让新的控制器正常工作,但当调用继承的方法时,它会抛出错误,即没有对路由中model方法提供的模型的引用。路线如下: App.ActivityRoute = App.GameScreenRoute.extend({ model: function(params) { var lessons = App.getLessons(), lessonId = p
renderTemplate
的Ember.js路由,它允许模型设置控制器/模板。我能够让新的控制器正常工作,但当调用继承的方法时,它会抛出错误,即没有对路由中model
方法提供的模型的引用。路线如下:
App.ActivityRoute = App.GameScreenRoute.extend({
model: function(params) {
var lessons = App.getLessons(),
lessonId = params.lesson_id,
activityId = params.activity_id,
lesson = lessons[lessonId],
activity = lesson ? lesson.activities[activityId] : null;
if(activity) {
return activity.load();
}
else {
return Promise.reject();
}
},
renderTemplate: function(controller, model) {
this.render(model.get("template") || "activity", {
controller: model.get("controller") || "activity"
});
}
});
当model.controller===undefined
时,使用的控制器是ActivityController
,它随model
方法返回的模型一起提供,但如果我将model.controller
设置到另一个控制器,不同的控制器没有对model
方法返回的模型的引用
有什么我不明白的地方吗?任何帮助都将不胜感激。这是因为默认的
setupController
钩子,它被activityrute
调用,只为ActivityController
设置模型
我相信通过覆盖setupController
hook,您将能够实现所需的行为:
setupController: function(controller, model) {
this.controllerFor(model.get("controller") || "activity").set('model', model);
}
我不是100%确定它是否会工作,控制器必须在某个地方实例化,以便由模型提供。但我想你已经注意到了