我有一个带有参数的路由,当转到页面/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/