Emberjs返回一个TypeError:stateManager是未定义的

时间:2012-07-23 17:49:43

标签: javascript ember.js

我正在构建一个emberjs,我正在努力让路由器正常工作。 我想测试代码,它总是给我一个TypeError:stateManager是未定义的错误。有什么我做错了吗? 仅供参考我现在没有使用任何后端只有json数据。 编辑:我正在使用Ember 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();

1 个答案:

答案 0 :(得分:2)

  1. 使用Ember.JS的最新版本。到最后一个版本我不是指最后一个稳定,我的意思是Ember.JS的最后一个版本(自己构建或下载它here
  2. 将Ember.State替换为Ember.Route。
  3. 使用router.get('applicationController')更改router.get('App.ApplicationController')
  4. connectOutlet('index')似乎也是错误的。它查找IndexView和IndexController所以我猜你需要用'menu'替换'index'
  5. 将ApplicationView.create替换为ApplicationView.extend(了解更多信息here