如何从 ViewModel 获取对当前路由器的引用

How to get reference to the current router from ViewModel

在我的视图模型 class 中,如何获取对当前路由器的引用?

我真正想做的是获取当前的 ModuleId。

在 Durandal 中,有 system.getModuleId,但 Durandal 中没有系统,所以我认为路由器将具有该信息。

访问当前 moduleId 的一种方法(不确定,最佳方法)在 class 的 activate 挂钩中:

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

获取当前路由器的引用方式:

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

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

注意:不要注入 "AppRouter" 这是不同的路由器。如果你给 AppRouter 添加了一个路由,它是不会工作的。如果您导入 Router,它将起作用。