【发布时间】:2016-11-13 18:10:01
【问题描述】:
为什么在 @angular\router params is observable 中使用 ActivatedRoute ?
我想知道为什么我需要订阅 Params ?以及为什么参数是异步的,是否存在将创建路由的组件但参数仍未填充的情况?
有没有办法在没有 observable 的情况下获得价值?
【问题讨论】:
标签: angular rxjs angular2-routing
为什么在 @angular\router params is observable 中使用 ActivatedRoute ?
我想知道为什么我需要订阅 Params ?以及为什么参数是异步的,是否存在将创建路由的组件但参数仍未填充的情况?
有没有办法在没有 observable 的情况下获得价值?
【问题讨论】:
标签: angular rxjs angular2-routing
你可以使用
route.routerState.params
您可以订阅,因为当您的应用程序使用另一个参数值导航到相同的路由时,不会重新创建组件,并且您无法知道参数何时发生更改。
订阅参数后,您会收到通知,表明发生了路由操作,仅更改了参数值。
【讨论】:
route.snapshot.params['param_name'],其中route 是ActivatedRoute 实例。
此路由范围内的矩阵参数。当参数集发生变化时,observable 将发出一个新值。
ActivatedRoute 上的 params 属性是 Observable 的原因是路由器在导航到同一个组件时可能不会重新创建该组件。在这种情况下,参数可能会更改而无需重新创建组件。
【讨论】: