Ember StateManager找不到控制器

时间:2013-04-29 11:52:37

标签: ember.js


  我已经尝试通过StackOverflow搜索一些答案,但找不到。请参阅下面的以下代码片段 - Ember stateManager无法找到控制器实例。此外,视图代码也不会呈现,请指导我做出的错误。

Dashboard.stateManager = Ember.StateManager.create({
start: Ember.State.extend({
    controller: null,

    enter: function(manager) {
        this.controller = manager.get('indexController');
        this.setPath('view.controller', this.controller);
        console.log(this.controller);
    },

    view: Dashboard.MapView

})
});
Dashboard.initialize(Dashboard.stateManager);
Dashboard.stateManager.transitionTo('start');

Dashboard.MapView很复杂,看起来像

Dashboard.MapView = Ember.View.extend({
...
)};

我是否必须添加一些内容才能执行视图?为什么statemanager无法获取'indexController') - 控制台输出在此片段的控制台日志行中返回undefined,尽管在页面加载后定义了Dashboard.IndexController,Dashboard.stateManager也是如此。

请注意,该应用程序是单页的,所以我根本没有定义路由,虽然定义了IndexController。这可能是个问题吗?但该应用程序没有说'route undefined'等,但页面是空白的?这是为单页面应用程序定义StateManager而没有“/”以外的任何路径的正确方法吗?

谢谢,
稻谷

1 个答案:

答案 0 :(得分:0)

如果您使用的是最新版本的Ember,我认为让您的控制器用于代替路由器的stateManager的方法是:

manager.get('container').lookup('controller:index')