Javascript 如何在运行时向Ember.Router添加路由或状态?

Javascript 如何在运行时向Ember.Router添加路由或状态?,javascript,ember.js,router,ember-old-router,Javascript,Ember.js,Router,Ember Old Router,我的应用程序上有以下Ember.Router: App.Router = Ember.Router.extend({ location: 'hash', rootElement: '#content', enableLogging: true, root: Ember.State.extend({ route: '/', index: Ember.State.extend({ route: '/',

我的应用程序上有以下Ember.Router:

App.Router = Ember.Router.extend({
    location: 'hash',
    rootElement: '#content',
    enableLogging: true,

    root: Ember.State.extend({
        route: '/',

        index: Ember.State.extend({
            route: '/',
            redirectsTo: 'main.welcome'
        }),

        main: Ember.State.extend({
            route: '/main',

            welcome: Ember.ViewState.extend({
                route: '/welcome',
                view: App.WelcomeView
            })
        })
    })
});
我想做的是在App.Router被声明后通过添加到App.Router来添加额外的路由(这是为了启用任意模块)。它是在App.initialize()之前还是之后完成并不重要

以下是模块路由对象的外观示例:

Module.routes = Ember.State.extend({
    route: '/module',
    index: Ember.State.extend({
        route: '/'
        view: Module.IndexView
    })
});

非常感谢您在这方面提供的任何帮助。

您可以提取您想要充实的州,以便稍后重新打开

App = Ember.Application.create();

App.RootState = Em.State.extend({
    index : Em.State.extend({
        route : '/'
    }),
    main: Em.State.extend({
        route : '/main',
        index : Em.State.extend({
            route : '/'
        })
    })
});

App.Router = Ember.Router.extend({
    location : 'hash',
    enableLogging : true,
    root : App.RootState
});

// later...

App.RootState.reopen({
    module: Em.State.extend({
        route : '/module',
        index : Em.State.extend({
            route : '/'
        })
    })
});

App.initialize();​
编辑:我在GitHub上使用最新版本