Angular router :( TAB like)导航 - 如何在不再运行ngOnInit的情况下更改URL

问题描述 投票:4回答:1

好的,问题很简单,但似乎自己找不到答案,所以请帮忙

我有这条路线(简化):

const routes: Routes = [
  {path: '', component: ListPageComponent},
  {path: 'd/:id', component: DetailsPageComponent},
  {path: ':param1', component: ListPageComponent},
  {path: ':param1/:param2', component: ListPageComponent},
  {path: ':param1/:param2/:param3', component: ListPageComponent},
  {path: '**', component: ListPageComponent}
];

在ListPageComponent上,我在顶部有一些选择框过滤器,触发onFilter方法(简化):

onFilter(filters: any) {
  this._router.navigate([
    'myroute/',
    this.param1,
    this.param2,
    this.param3
  ]);
}

现在,我想要的是当我触发此方法时,我导航(到同一页面组件),我不希望组件再次运行ngOnInit ...只是为了更改URL params(我已经订阅了params改变 - this._route.params.subscribe)

angular router
1个回答
0
投票

我终于找到了解决方案:Change route params without reloading in angular 2

它可以只使用location.replaceState,就像我的情况下的魅力一样!

© www.soinside.com 2019 - 2024. All rights reserved.