【发布时间】:2018-08-03 07:33:48
【问题描述】:
我试图在我的 Angular 5.2 应用程序中重新加载我的导航,但没有成功。如果参数不变,角度路由器将忽略我的导航。
我如何导航:
this.router.navigate(['/search', buildParamsFromSearchCriteria(criteria)]);
这导航到:
/search;pageSize=20;page=1;orderBy=price;sortDirection=ASCENDING
我的模块配置:
imports: [RouterModule.forRoot(appRoutes, { preloadingStrategy: PreloadAllModules, enableTracing: false, onSameUrlNavigation: 'reload' })],
【问题讨论】:
-
你看到那个帖子了吗? github.com/angular/angular/issues/21115 显然,它只用于再次运行守卫和解析器。你到底想达到什么目的?难道你不能在你的组件中有一个可以手动调用的“刷新”操作吗?
-
我无法刷新,因为我的组件仅使用搜索参数导航。我的 ngrx 效果监听路由器调用并在导航到 url 时分派搜索操作。我现在有一个临时 hack,它在 url 的末尾设置一个随机数以使其唯一
-
为什么要在同一个 url 上路由两次?你会得到同样的结果吗?
-
结果可能不一样,因为后端数据可能已经更新或添加了项目。
-
您可以再添加一个随机参数来强制刷新。