Как получить ссылку на текущий маршрутизатор из ViewModel

В моем классе viewmodel, как мне получить ссылку на текущий маршрутизатор?

То, что я действительно хочу сделать, это получить текущий ModuleId.

В Durandal был system.getModuleId, но в Durandal нет системы, поэтому я полагаю, что маршрутизатор будет иметь эту информацию.

Ответ 1

Один из способов (не уверенный, оптимальный) для доступа к текущему moduleId находится в activate для вашего класса:

activate(params, routeConfig) {
    console.log(routeConfig.moduleId);
}

Ответ 2

Способ получения ссылки на текущий маршрутизатор:

import {inject} from 'aurelia-framework'
import {router} from 'aurelia-router'

@inject(router)
constructor(router)
{
    this.router = router; //Do something with router.
}

Примечание. Не вводите "AppRouter". Это другой маршрутизатор. Если вы добавите маршрут в AppRouter, это не сработает. Он будет работать, если вы импортируете Router.