我的应用程序中有以下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.initialize()之前还是之后完成都不重要。
以下是模块路由对象的示例:
Module.routes = Ember.State.extend({
route: '/module',
index: Ember.State.extend({
route: '/'
view: Module.IndexView
})
});
非常感谢任何有关此事的帮助。
答案 0 :(得分:5)
您可以提取想要丰富的状态,以便稍后重新打开。
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上使用最新版本