policyClicked(policy: Policy){
console.log(policy.name);
this.router.navigate(['/policy',{projectId: this.project._id},{policyName: policy.name}]);
}
我试图执行这段代码来路由到提供的路径。但我不断收到错误:
错误:无法匹配任何路线:'政策; projectId = uSpGcJFtxHK3vLGht / [object Object]'
像最后一个参数一样迷路或什么的。我在那里放了一些日志来查看值是否未定义但是它在那里。继续定义路线的地方。
const routes: RouterConfig = [
{path: '', component: DashBoardHome},
{path: 'project/:projectSearchResultId', component: ProjectSearchResultsDetails},
{path: 'search/:projectSearchValue', component: ProjectSearchResults},
{ path: 'login', component: Login },
{ path: 'signup', component: Signup },
{ path: 'recover', component: Recover },
{path: 'policy/:projectId/:policyName', component: PolicyDetails}
];
答案 0 :(得分:0)
在您的第一个示例中,您传递了一个对象(大括号{}中的代码),因此Javascript将其解释为[对象],这就是您遇到这个奇怪错误的原因。通过不带括号传递它,Javascript可以使用实际文本。
您也可以考虑以这种方式尝试:
var URL = '/policy/' + this.project._id + '/' + policy.name;
this.router.navigate(URL);