2012-07-23 59 views
0

我目前正在构建一个emberjs,我试图让路由器工作。 我想测试代码,它总是返回一个TypeError:stateManager是未定义的错误。是否有任何即时通讯做错了? 仅供参考我现在不使用任何后端,现在只有json数据。 编辑:我使用灰烬0.9.8.1Emberjs返回一个TypeError:stateManager是undefined

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(); 
+0

是什么版本的Ember.js的替换ApplicationView.create你在用吗? – Rajat 2012-07-23 18:13:16

+0

ember-0.9.8.1 non minified – Lunatikzx 2012-07-23 18:23:08

回答

2
  1. 使用Ember.JS的最后一个版本。到最后一个版本,我不是说最后一个稳定,我的意思是Ember.JS的最后一个版本(自己构建或下载它
  2. 用Ember.Route替换Ember.State。
  3. 使用router.get('applicationController')更改router.get('App.ApplicationController')
  4. connectOutlet('index')似乎也是错误的。它看起来弥补IndexView和索引控制器,所以我想你需要的“菜单”
  5. 取代“指数”与ApplicationView.extend(阅读更多关于它here
+0

它返回根目录:Em.Route.extend({undefined – Lunatikzx 2012-07-23 18:18:29

+0

0.9.8.1中没有connectOutlet – zaplitny 2012-07-23 18:29:18

+0

什么取代连接插座...即时尝试关注网站文档在这里,我是currybtly卡住 – Lunatikzx 2012-07-23 18:35:15