【发布时间】:2019-02-18 22:23:45
【问题描述】:
我正在努力解决这个错误:
NavigationError(id: 2, url: '/something/create?user=3#new', 错误: 错误:无法匹配任何路由。 URL 段:'something/create')
到目前为止我已经做到了:
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 放在末尾,等等,但我最终总是遇到同样的错误。
有什么想法吗?我在这里阅读了很多关于角度路由的问题,但还没有找到我的问题的答案。
如果您需要更多代码,请询问。
【问题讨论】:
-
你试过
queryParams从ActivatedRoute吗? -
我做了,有一些不可读的错误,看起来像 Error : [object object],所以我回到了用 JHipster 生成的内容。
-
首先将您的路由器路径更改为
something/create,而不是path : something/create?user=:id#new。比使用 queryParams -
我做到了,现在我得到了
path: 'supervision/create/:id',如下面的答案所示。请检查那里的cmets,仍然有错误。 -
不要使用
:id
标签: angular typescript routes navigation jhipster