Typescript Router navigate()



我正在努力解决此错误:

NavigationError(id: 2, url: '/something/create?user=3#new', error: 错误:无法匹配任何路由。网址细分:"某物/创建"(

到目前为止,我已经做到了这一点:

some.component.ts

constructor( private router: Router ) {}
createNew() {
const navigateToNewWithUser: NavigationExtras = {
fragment: 'new',
queryParams: {'user': this.user.id}
};
this.router.navigate(['/something/create'], navigateToNewWithUser);
}

some.component.html

<button class="btn add-button float-right jh-create-entity" (click)="createNew()">

some.route.ts

{
path: 'something/create?user=:id#new',
component: SomeComponent,
resolve: {
supervision: UserPageResolver
},
data: {
authorities: ['ROLE_ADMIN'],
pageTitle: 'home.create'
},
canActivate: [UserRouteAccessService]
}

所有其他路线都采用相同的模式,并且工作正常。 我不明白,因为/something/create?user=3#new与我在 route.ts 中输入的内容相匹配

我正在使用使用JHipster生成的Angular 6项目。 我尝试更改 URL, 删除#new,将?user=:id放在末尾等等,但最终我总是遇到同样的错误。

知道吗?我在这里读了很多关于角度路由的问题,但还没有找到我问题的答案。

如果您需要更多代码,请询问。

你也可以尝试这样的事情,

this.router.navigate(['/something/create'], { queryParams: { user: this.user.id } });

将路线更改为,

{ path: 'something/create',  component: SomeComponent }

告诉你的路由,它可以通过简单的":id"而不是"user=:id"来接收参数。 它将自动解析为"用户=2">

{
path: 'something/create/:id',
component: SomethingComponent
}

如果要在路由中使用哈希,则必须打开哈希位置策略RouterModule.forRoot(routes, {useHash: true})

对于查询参数,更改您的路由器路径,例如

path: 'something/create/:id

相关内容

  • 没有找到相关文章

最新更新