Javascript 如何在运行时向Ember.Router添加路由或状态?
我的应用程序上有以下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: '/',
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上使用最新版本