javascript - 路由器参数总是在激活方法中返回未定义
问题描述
我在路由器下面创建了它,它假设有一个名为name
. 但是,当我例如访问dashboard/test
它时,它会返回{'name': undefined}
。我不知道它为什么返回undefined
,因为我正在访问激活方法中的参数。
路由器
export class App {
configureRouter(config, router) {
//config.options.pushState = true;
config.title = 'Aurelia';
config.addAuthorizeStep(AuthorizeStep);
config.options.root = '/';
config.map([
{
route: 'dashboard/:name?',
name: 'dashboard',
moduleId: PLATFORM.moduleName('components/dashboard/dashboardcomponent'),
title: 'Dashboard',
layoutView: PLATFORM.moduleName('shared/layouts/app-layout.html'),
nav: true,
href: '#',
settings: {
auth: true
}
}
]);
this.router = router;
}
}
仪表板组件
@inject(DashboardService, Store, Router)
export class DashboardComponent {
routeParam = null;
// Booleans
isLoading = false;
hasDashboards = false;
// dashboard docs
dashboards = [];
//selected dashboard
dashboard = {};
constructor(dashboardservice, store, router) {
this.dashboardservice = dashboardservice;
this.store = store;
this.router = router;
}
activate(params, routeConfig) {
console.log(params);
}
}
解决方案
也许您没有注意到评论,所以我将其发布为答案。
我将它创建为沙盒,它工作正常。
它不完全相同..因为您没有发布所有相关代码。
- 确保您没有运行旧缓存版本的代码。
- 确保你没有在你的
AuthorizeStep