首页 文章

如何在Angular2中检测到同一页面的路由?

提问于
浏览
1

我在导航栏中搜索只是使用路由器在路径中传递查询并导航到正确的组件 .

所以基本上我的导航栏组件中的搜索按钮:

onSubmit() {
  this.router.navigate(['/search', { query: this.searchQuery }]);
}

然后在目标搜索组件中:

this.route.params.forEach((params: Params) => {
  doSearch(params['query']);
}

虽然这在我更改查询时非常有效,但在查询未更改时却不会 . 我理解,通过订阅params Observable,当params保持不变时,我不会得到通知 . 并且路由器只是重用已经加载的组件,所以我不能在ngOnInit中使用任何代码,因为它没有被调用 .

问题是,仅仅因为搜索查询是相同的,结果可能不是 . 所以我需要一种方法再次调用doSearch,即使使用相同的参数 .

有没有办法检测路由器何时路由到同一目的地而没有任何参数更改?

1 回答

  • 2

    我想如果您订阅 this.router.events observable,即使查询保持不变,您也会收到通知 .

相关问题