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

时间:2016-11-13 18:10:01

标签: angular rxjs angular2-routing

ActivatedRoute中为何@angular\router params is observable

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

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

2 个答案:

答案 0 :(得分:11)

您可以使用

route.routerState.params

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

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

答案 1 :(得分:1)

作用于此路线的矩阵参数。当参数集改变时,observable将发出一个新值。

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