2016-08-30 61 views
1

我有以下代碼:ngOnChanges()不檢測路由參數

constructor(private http: Http, 
    private route: ActivatedRoute,private router: Router) { 
     this.userID = this.route.snapshot.params['userID']; 
    } 


    ngOnChanges() 
    { 
     this.getUser(); 
    } 

此代碼是從我的球員檔組件,我從路線PARAMS獲得用戶ID和使用this.getUser()來對我的服務器進行API調用。

使用ngOnInit()可以工作,但當路由在同一組件中轉換到另一個用戶時,用戶不會重新加載。

我更改爲ngOnChanges(),現在甚至沒有被調用一次。看起來像ngOnChanges只適用於@Input(),我沒有一個。

如何在userID更改爲其他用戶時重新加載我的用戶數據?

回答

1

這可能會實現:

private route: ActivatedRoute,private router: Router) { 
    this.userID = this.route.params.subscribe(params => { 
     this.getUser(params['userID']); 
    }) 
}