多个模型视图中的 Aurelia 路由器配置

Aurelia Router Configuration in Multiple Model-Views

是否可以从多个视图模型配置路由器?

类似下面的内容?

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
      }])
    })
  }
}

来自 aurelia docs:

与 Aurelia 中的所有内容一样,我们强烈支持约定。因此,您实际上可以选择动态路由,而不是预先配置所有路由。以下是配置路由器的方法:

router.configure(config => {
  config.mapUnknownRoutes(instruction => {
    //check instruction.fragment
    //set instruction.config.moduleId
  });
});

您只需设置 config.moduleId 属性 即可。您还可以 return 来自 mapUnknownRoutes 的承诺,以便异步确定目的地。

此外,路由器有一个 addRoute 方法,可以在您的情况下稍后添加路由。