ActivatedRoute字段是 Observable。例如,我们想要获取一个 id 参数或只是 URL 的第 n 段。我们使用 Observables 而不是简单的映射或数组。这是对异步的过度使用还是出于某种目的真的需要这种方式?
最佳答案
您可以使用 snapshot
field of the ActivatedRoute 获取参数的当前 版本.
但默认情况下,如果您从一条路线导航到同一路线,路由器会重复使用同一组件,仅更改参数。因此,您需要一个 Observable 来响应组件内部参数值的变化。
例如,假设您有一个要显示的练习列表。单击练习时,您将转到 /exercises/1
。在显示练习的组件模板中,您有一个指向 /exercises/2
的“Next”链接。单击该链接将使 params
Observable 发出一个新值。但是路由器不会创建 ActivatedRoute 的新实例,也不会创建 ExerciseComponent 的新实例。 ExerciseComponent 需要订阅可观察的参数,以便在发出事件时加载练习 2 的详细信息。
如果您没有这样的链接,那么快照就是您所需要的,它确实包含作为常规对象的参数。
关于angular - 为什么 Angular 2 在路由中使用 Observable 而不是简单的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42188270/