路由器路径参数更改为[object Object]?

时间:2016-07-21 22:57:18

标签: angularjs meteor angular-ui-router angular-meteor

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}
];

1 个答案:

答案 0 :(得分:0)

在您的第一个示例中,您传递了一个对象(大括号{}中的代码),因此Javascript将其解释为[对象],这就是您遇到这个奇怪错误的原因。通过不带括号传递它,Javascript可以使用实际文本。

您也可以考虑以这种方式尝试:

var URL = '/policy/' + this.project._id + '/' + policy.name;
this.router.navigate(URL);