是否可以从多个视图模型配置路由器?
如下所示?
class App {
...
constructor(router) {
this.router.configure(config => {
config.map([{
route: 'home',
moduleId: 'home',
nav: true
}])
})
}
}
更改其他视图模型中的路由器配置:
class SomeOtherPage {
...
constructor(router) {
this.router.configure(config => {
config.map([{
route: 'someOtherPage',
moduleId: 'someOtherPage',
nav: true
}])
})
}
}
答案 0 :(得分:8)
来自aurelia docs:
与Aurelia的所有内容一样,我们对会议提供强有力的支持。因此,您实际上可以选择动态路由而不是预先配置所有路由。以下是配置路由器的方法:
router.configure(config => {
config.mapUnknownRoutes(instruction => {
//check instruction.fragment
//set instruction.config.moduleId
});
});
您只需设置config.moduleId属性,就可以了。您还可以从mapUnknownRoutes返回一个promise,以便异步确定目标。
此外,路由器有一个addRoute
方法,在您的情况下应该可以在以后添加路由。