Javascript 返回TypeError:stateManager未定义

Javascript 返回TypeError:stateManager未定义,javascript,ember.js,Javascript,Ember.js,我目前正在构建一个emberjs,我正在尝试让路由器工作。 我想测试代码,但它总是返回一个TypeError:stateManager是一个未定义的错误。我有什么地方做错了吗? 仅供参考,我现在不使用任何后端仅用于json数据。 编辑:我正在使用余烬0.9.8.1 App = Em.Application.create({}); /* Main menu*/ App.MenuModel = Em.Object.extend({ id : null, titre : null,

我目前正在构建一个emberjs,我正在尝试让路由器工作。 我想测试代码,但它总是返回一个TypeError:stateManager是一个未定义的错误。我有什么地方做错了吗? 仅供参考,我现在不使用任何后端仅用于json数据。 编辑:我正在使用余烬0.9.8.1

App = Em.Application.create({}); 

/* Main menu*/
App.MenuModel = Em.Object.extend({
    id : null,
    titre : null,
    questions : null,
    route: null
});

/* Submenu */
App.SubMenuModel = Em.Object.extend({
    titre : null, 
    id : null
});

/*Questions*/
App.QuestionsModel = Em.Object.extend({
    id : null,
    question : null,
    points: 0
}); 

/*************************************** Controller */
App.ApplicationController = Em.ArrayController.extend();

/* Main Menu controller */
App.MenuController = Em.ArrayController.extend({
    content:[],
        init : function(){
            var self = this;
            var data = menuComplet;
            console.log(menuComplet);
            console.log(this);
                data.forEach(function(item){
                    console.log(self);
                    self.pushObjects(App.MenuModel.create(item));
                }, data);
        }
});

/* Sub Menu controller */
App.SubMenuController = Em.ArrayController.extend({

});

/* Question controller */
App.QuestionController = Em.ArrayController.extend({

});


App.ApplicationView = Em.View.create({
    templateName: 'application'
 });


App.MenuView = Em.View.extend({
    templateName : "navigation", 
    contentBinding : "App.MenuController.content"
});

/****************************************** Router */
App.Router = Em.Router.extend({
    enableLogging : true,
    location : 'hash',
    root: Ember.State.extend({
    // STATES
        index: Ember.State.create({
            route: '/',
            connectOutlets: function (router) {
                router.get('App.ApplicationController').connectOutlet('index');
            }
        })
    })  
});
App.initialize();
  • 使用Ember.JS的最新版本。我说的最后一个版本不是指最后一个稳定版本,而是指Ember.JS的最后一个版本(自己构建或下载)
  • 用Ember.Route替换Ember.State
  • 将router.get('App.ApplicationController')更改为router.get('ApplicationController')
  • connectOutlet(“索引”)似乎也错了。它会查找IndexView和IndexController,所以我想您需要将“索引”替换为“菜单”
  • 将ApplicationView.create替换为ApplicationView.extend(了解更多信息)

  • 您使用的是哪个版本的Ember.js?它返回root:Em.Route.extend({未定义0.9.8.1中没有connectOutlet,是什么替代了连接插座…我试图在这里查看站点文档,我现在正在使用最新版本。自0.9.8.1以来,更改了太多内容。emberjs.com上的文档有时会被弃用。您可以自己构建它,也可以找到其他地方(例如)现在看起来好吗?我刚接触stackoverflow,不能和你聊天