Angular 2 : Route parameter changes, 重新加载同一页面?

标签 angular angular2-routing

我有一个带有参数的路由,当转到页面/users/123 时,其中 123 是调用 ngOnInit 的参数,我得到我的参数并调用我的方法来获取用户。

但是,当我在该页面上并单击第二个链接/users/456 时,不再调用 ngOnInit(因为该页面已经实例化)。因此,如果没有 ngOnInit,我将无法获取路由参数,也无法调用我的方法来获取用户。

如果我转至/users/123,然后转至/home,然后转至/users/456,显然可以正常工作。

我必须使用什么来确保获取参数和获取用户的函数始终被调用,即使我已经在同一页面上也是如此?

最佳答案

您可以使用订阅者 route.params 来监听参数的变化。

import { ActivatedRoute } from '@angular/router';

export class DemoPage {
    constructor(private _route: ActivatedRoute) { }
    ngOnInit() {
            this._route.params.forEach(params => {
                    let userId = params["userId"];
                    //call your function, like getUserInfo()
            })
    }
} 

关于Angular 2 : Route parameter changes, 重新加载同一页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41393095/

相关文章:

javascript - View 初始化后的 Angular2 MdInputContainer 焦点

Angular 2 - 服务中的服务

angular - 使用 CanActivate 守卫时获取 "No provider error"

angular - Angular2中传递参数 @RouteConfig redirectTo

Angular2 rc.5 和 hashbang

angular - 在路由解析器内使用订阅

javascript - 识别 Angular2 中的后退/前进浏览器按钮

Angular 4选择整个对象

php - 飞行响应中的 Access-Control-Allow-Headers 不允许请求 header 字段 Content-Type

angular - Angular 测试中的 SpyOn