为什么@angular\router params中的ActivatedRoute是可观察的?

Min*_*nce 10 rxjs angular2-routing angular

为什么ActivatedRoute@angular\router params is observable

我想知道为什么我需要订阅Params?为什么params是异步的,是否会出现路由的组件但是params仍然没有填充?

有没有办法在没有的情况下获得价值observable

Gün*_*uer 11

您可以使用

route.routerState.params
Run Code Online (Sandbox Code Playgroud)

您可以订阅,因为当您的应用程序仅使用另一个参数值导航到同一路径时,不会重新创建该组件,并且您无法知道参数何时发生更改.

通过订阅参数,您会收到通知,发生了只有参数值发生变化的路径操作.

  • 我相信现在你必须使用 `route.snapshot.params['param_name']`,其中 `route` 是一个 `ActivatedRoute` 实例。 (4认同)

小智 6

矩阵参数的范围仅限于该路由。当参数集发生变化时,可观察对象将发出新值。

ActivatedRoute 上的 params 属性是 Observable 的原因是,当导航到同一组件时,路由器可能不会重新创建该组件。在这种情况下,参数可能会更改,而无需重新创建组件。