ActivatedRoute字段是Observables。例如,我们想要获取id参数或仅获取第n个URL段。我们使用Observables而不是简单的地图或数组。这是过度使用异步还是真的需要用于某个目的?
答案 0 :(得分:4)
您可以使用snapshot
field of the ActivatedRoute获取参数的当前版本。
但默认情况下,如果从路由导航到同一路由,路由器将重用相同的组件,仅更改参数。因此,您需要Observable能够对该组件内部的参数值的更改做出反应。
例如,假设您有要显示的练习列表。单击练习后,您将转到/exercises/1
。在显示练习的组件的模板内,您有一个" Next"链接到/exercises/2
。单击该链接将使params
Observable发出新值。但路由器不会创建ActivatedRoute的新实例,也不会创建一个新的ExerciseComponent实例。 ExerciseComponent需要订阅params observable,以便在发出事件时加载练习2的细节。
如果您没有这样的链接,那么快照就是您所需要的,它确实包含了作为常规对象的参数。