【问题标题】:why ActivatedRoute in @angular\router params is observable?为什么 @angular\router 参数中的 ActivatedRoute 是可观察的?
【发布时间】:2016-11-13 18:10:01
【问题描述】:

为什么在 @angular\router params is observable 中使用 ActivatedRoute

我想知道为什么我需要订阅 Params ?以及为什么参数是异步的,是否存在将创建路由的组件但参数仍未填充的情况?

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

【问题讨论】:

    标签: angular rxjs angular2-routing


    【解决方案1】:

    你可以使用

    route.routerState.params
    

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

    订阅参数后,您会收到通知,表明发生了路由操作,仅更改了参数值。

    【讨论】:

    • ngOnInit 怎么样?它会在组件创建后或每次组件处于活动状态时被调用吗?
    • 只有一次。 . . .
    • 我相信您现在必须使用route.snapshot.params['param_name'],其中routeActivatedRoute 实例。
    • 这是一个相当老的答案,从那时起路由器被更换了好几次。感谢您的更新。
    【解决方案2】:

    此路由范围内的矩阵参数。当参数集发生变化时,observable 将发出一个新值。

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

    【讨论】:

    • 你回答的第二部分是why的真正原因,这正是我想要的。
    猜你喜欢
    • 2015-10-25
    • 1970-01-01
    • 2018-08-05
    • 2017-05-07
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    相关资源
    最近更新 更多