代码之家  ›  专栏  ›  技术社区  ›  derOtterDieb

Typescript路由器导航()

  •  0
  • derOtterDieb  · 技术社区  · 7 年前

    我正在努力克服这个错误:

    导航错误(id:2,url:'/something/create?用户=3#新',错误:

    我已经做到了:

    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()">
    

    一些.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 匹配我的输入路线.ts

    我正在使用JHipster生成6个项目。 我试图更改URL,删除 #new ,放置 ?user=:id 最后,还有更多,但我总是犯同样的错误。

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

    3 回复  |  直到 7 年前
        1
  •  3
  •   Yuvaranjani    7 年前

    你也可以试试这个,

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

    把路线改成,

        { path: 'something/create',  component: SomeComponent }
    
        2
  •  0
  •   Daddelbob    7 年前

      {
        path: 'something/create/:id',
        component: SomethingComponent
      }
    
        3
  •  0
  •   Vaibhav    7 年前

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

    对于查询参数,更改路由器路径

    path: 'something/create/:id