【问题标题】:how to reload one component with the same url如何使用相同的 url 重新加载一个组件
【发布时间】:2020-07-30 07:24:59
【问题描述】:

假设有一个包含不同菜单项的菜单。当用户点击菜单项时重定向到 url 当用户单击同一菜单项时,必须重新加载组件,这样它就会丢失用户首先放置的所有变量。

reloaadURL(URL_DESTINATION){
   router.routeReuseStrategy.shouldReuseRoute = () => false;
        router.onSameUrlNavigation = 'reload';
        router.navigate([URL_DESTINATION], { relativeTo: route });

这是我的应用程序路由

path: environment.URL_STUDENT, canActivate: [AuthGuard], children: [
      {
        path: environment.Url_A, loadChildren: () => ....
      },
      {
        path: environment.URL_B, loadChildren: () => ...
      }]
  },
@NgModule({
  imports: [RouterModule.forRoot(routes)
  ],
  exports: [RouterModule]
})

问题是当用户第一次点击同一个链接(A)时,它可以正常工作,但是当用户点击另一个链接(B)时,组件A被加载而不是B。任何人都可以帮助我吗?

【问题讨论】:

    标签: angular typescript angular-routing


    【解决方案1】:

    使用kipLocationChange: true导航到要重新加载的组件而不更改url

    this.router.navigateByUrl('/YourCurrentComponentRefresh', { skipLocationChange: true }).then(() => {
        this.router.navigate(['/YourCurrentComponent']);
    }); 
    

    【讨论】:

    • 但是你的解决方案不好?因为第一次需要加载另一个页面“YourCurrentComponentRefresh”并在重定向到“YourCurrentComponentRefresh”之后?
    猜你喜欢
    • 2017-01-16
    • 2015-01-28
    • 2022-01-02
    • 2017-01-24
    • 2018-07-15
    • 2018-06-01
    • 2018-03-20
    • 2014-10-27
    • 2018-08-05
    相关资源
    最近更新 更多