0

我目前正在构建一个 emberjs,我正在尝试让路由器工作。我想测试代码,它总是给我返回一个 TypeError: stateManager is undefined error。我做错了什么吗?仅供参考,我现在只使用 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();
4

1 回答 1

2
  1. 使用最新版本的 Ember.JS。最后一个版本我不是指最后一个稳定版本,我是指 Ember.JS 的最后一个版本(自己构建或在此处下载)
  2. 将 Ember.State 替换为 Ember.Route。
  3. 用 router.get('applicationController') 更改 router.get('App.ApplicationController')
  4. connectOutlet('index') 似乎也是错误的。它查找 IndexView 和 IndexController 所以我猜你需要用 'menu' 替换 'index'
  5. Replace ApplicationView.create with ApplicationView.extend (read more about it here)
于 2012-07-23T18:09:51.257 回答