0

私は現在 emberjs を構築しており、ルーターを機能させようとしています。コードをテストしたかったのですが、常に TypeError: stateManager is undefined error.Im が間違っていることはありますか? 参考までに、現在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('App.ApplicationController') を router.get('applicationController') に変更します
  4. connectOutlet('index') も間違っているようです。IndexView と IndexController を検索するので、「index」を「menu」に置き換える必要があると思います
  5. ApplicationView.create を ApplicationView.extend に置き換えます (詳細については、こちらを参照してください) 。
于 2012-07-23T18:09:51.257 に答える