Конфигурация маршрутизатора Aurelia в нескольких представлениях модели

Можно ли настроить маршрутизатор из нескольких моделей просмотра?

Что-то вроде следующего?

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

person bekite    schedule 12.02.2015    source источник


Ответы (1)


из документов aurelia:

Как и все в Аурелии, мы решительно поддерживаем соглашения. Таким образом, вы можете выбрать динамическую маршрутизацию, а не предварительную настройку всех ваших маршрутов заранее. Вот как настроить маршрутизатор для этого:

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

Все, что вам нужно сделать, это установить свойство config.moduleId, и все готово. Вы также можете вернуть обещание из mapUnknownRoutes, чтобы асинхронно определить пункт назначения.

Кроме того, у маршрутизатора есть метод addRoute, который должен работать в вашем случае, чтобы добавить маршрут позже.

person Mike Graham    schedule 12.02.2015
comment
Я видел метод config.mapUnknownRoutes() в документации, но не смог понять, как его использовать для моей цели. Метод addRoute() — это то, что я искал. Обе ссылки мне очень помогли. Спасибо. - person bekite; 12.02.2015
comment
рад, что тебе помогло :) - person Mike Graham; 12.02.2015