0


我尝试通过 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”) - 控制台输出在此代码段的控制台日志行中返回未定义,尽管 Dashboard.IndexController 是在页面加载后定义的,Dashboard.stateManager 也是如此。

请注意,该应用程序是单页的,因此我根本没有定义路由,尽管定义了 IndexController。这会是个问题吗?但是应用程序没有说'路由未定义'等,但页面是空白的?这是为没有“/”以外的任何路由的单页应用程序定义 StateManager 的正确方法吗?

谢谢,
稻田

4

1 回答 1

0

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

manager.get('container').lookup('controller:index')
于 2013-04-29T13:50:56.833 回答