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%确定它是否会工作,控制器必须在某个地方实例化,以便由模型提供。但我想你已经注意到了