首页 > 解决方案 > 使用路由器调用另一个组件上的方法

问题描述

我在表格上有一个按钮,当我单击它时,我想转到另一个组件并打开一个特定元素,我的意思是,导航到另一个组件并调用一个方法 (GetReport)。

我如何使用路由器或类似的东西来实现这一点?

我在 TypeScript 中使用 Angular 6

标签: javascriptangulartypescriptangular6

解决方案


实际上,这通常不是通过从路由器调用另一个组件上的方法来完成的,而是从触发导航的组件中提供要使用的信息,并通过注入路由器在登陆组件上检索它。

使用路由器的两种可能的解决方案是:

  1. 包括您希望作为路线的一部分可用的信息,并按照此处ActivatedRoute所述在着陆组件上检索它。
  2. 在导航到其他路线时按照此处query parameters所述使用以使信息可用,并在着陆组件上使用它来检索它ActivatedRoute

另一种方法是在应用程序上集中存储数据并订阅需要数据的组件的更改。实现这一目标的两种可能方法是:

  1. 创建一个具有 Rxjs 主题和设置下一个值的方法的服务,并订阅登陆组件上主题的更改
  2. 使用状态管理解决方案(如 NGRX 或 NGXS),调度一个操作来设置所选元素并从登陆组件内部的存储中选择信息

根据您提供的信息,您的用例的最佳方法似乎是 1) 或 2),具体取决于信息应该是路由的一部分还是查询参数。


推荐阅读