打字稿路由器导航()

kaz*_*azu 0 navigation routes typescript jhipster angular

我正在努力解决这个错误:

NavigationError(id: 2, url: '/something/create?user=3#new', error: 错误: 无法匹配任何路由。URL 段: 'something/create')

到目前为止我已经做到了:

一些组件.ts

constructor( private router: Router ) {}

createNew() {
    const navigateToNewWithUser: NavigationExtras = {
        fragment: 'new',
        queryParams: {'user': this.user.id}
    };

    this.router.navigate(['/something/create'], navigateToNewWithUser);
}
Run Code Online (Sandbox Code Playgroud)

一些.component.html

<button class="btn add-button float-right jh-create-entity" (click)="createNew()">
Run Code Online (Sandbox Code Playgroud)

一些.route.ts

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

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

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

任何想法 ?我在这里阅读了很多有关角度路由的问题,但尚未找到我的问题的答案。

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

小智 6

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

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

将路线更改为,

    { path: 'something/create',  component: SomeComponent }
Run Code Online (Sandbox Code Playgroud)