我可以将参数传递给路线并使用以下代码导航到那里:
this.router.navigateToRoute('CaseList', { RefNo: this.selectedData.RefNo
}, { replace: true })
参数正确传递到新页面。
但是,我想在新标签页中打开该页面。我试过了:
window.open(this.router.generate('CaseList', { RefNo:
this.selectedData.RefNo }),'_blank');
这将打开一个新标签页,并将参数值附加到网址,例如http://localhost:49328/AppCaseMgmt/CaseList/20150000015,但如果我尝试在激活时读取参数的值,请执行以下操作:
activate(params) {
console.log('activate in case list');
console.log(params.RefNo);
....
}
它未定义。
我正在使用
将路由动态添加到路由器this.router.addRoute({
route: "/AppCaseMgmt/CaseList/:RefNo", name: "CaseList", moduleId: "app/case-management/case-list",
title: "CaseMgmt:CaseManagement_SiteMapHeaderCaseManagement_title" });
this.router.refreshNavigation();
但就我所知,这不应该有所作为。 (我尝试将路由添加到config.map,但没有成功)。我开始认为这是不可能的。有没有人有任何想法?
谢谢, 安东尼
答案 0 :(得分:5)
我无法重现此错误。 但是,我想恢复你对Aurelia的信任,所以根据你的用例,这里有一个demo和source。
在重复使用相同的ViewModel之前,我遇到了类似的问题,但在这种情况下,第二次没有调用activated
事件。
我已根据Cheat Sheet
replace
,从而解决了这个问题
export class Product {
determineActivationStrategy(){
return activationStrategy.replace;
}
}
这可能会让您更接近解决方案。