2016-07-14 63 views
0

如何重建路由器?當我加載相同的路由器,但與另一個參數,只有URL更改,視圖保持不變。有沒有辦法說路由器 - 「嘿,重建自己!」?Angular2如何重建視圖(路由)

我需要類似window.location.reload()的效果,但不需要重新加載。

回答

1

當您使用不同的參數導航到相同的路由時,它會重用該組件。因此ngOnInit將不會再被調用,所以你可能認爲頁面沒有更新。您應訂閱到ngOnInit routeparam然後執行視圖更新的訂閱功能

進樣活性路線構造

constructor(
    private route: ActivatedRoute, 
    private router: Router,......) {} 
In the ngOnInit method, we use the ActivatedRoute service to retrieve the parameters for our route 

ngOnInit() { 
    this.sub = this.route.params.subscribe(params => { 
    let id = +params['id']; // (+) converts string 'id' to a number 
    //here goes your logic like below 
this.service.getHero(id).then(hero => this.hero = hero); 
    }); 
} 

也期待在另一個所以question

+0

嘿嘿,謝謝。它工作但很奇怪。我是一個路由器回來。它就像:Cliked A - > nothing,點擊B - >重定向到A,點擊C - >重定向到B。你知道什麼是錯的嗎? – elzoy

+0

向我們展示一些代碼,您可能會看到控制檯表達式上的警告在檢查後發生了變化。嘗試在setTimeout中包裝setter。向我們展示與參數處理相關的代碼 –

+0

對不起,我忘了重構我的代碼。我在裏面訂閱this.route.params.snapshot ['id']而不是params ['id']。謝謝,你搖滾;) – elzoy