路由器路径参数更改为 [object Object]?
Router path parameter changes to [object Object]?
policyClicked(policy: Policy){
console.log(policy.name);
this.router.navigate(['/policy',{projectId: this.project._id},{policyName: policy.name}]);
}
我正在尝试执行这段代码以路由到提供的路径。但我不断收到错误消息:
错误:无法匹配任何路由:'policy;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}
];
在您的第一个示例中,您传递了一个对象(大括号 {} 中的代码),因此 Javascript 将其解释为一个 [object],这就是您遇到奇怪错误的原因。通过不带大括号传递它,Javascript 可以使用实际文本。
你也可以考虑这样尝试:
var URL = '/policy/' + this.project._id + '/' + policy.name;
this.router.navigate(URL);
policyClicked(policy: Policy){
console.log(policy.name);
this.router.navigate(['/policy',{projectId: this.project._id},{policyName: policy.name}]);
}
我正在尝试执行这段代码以路由到提供的路径。但我不断收到错误消息:
错误:无法匹配任何路由:'policy;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}
];
在您的第一个示例中,您传递了一个对象(大括号 {} 中的代码),因此 Javascript 将其解释为一个 [object],这就是您遇到奇怪错误的原因。通过不带大括号传递它,Javascript 可以使用实际文本。
你也可以考虑这样尝试:
var URL = '/policy/' + this.project._id + '/' + policy.name;
this.router.navigate(URL);