假設我目前有 A、B兩個頁面,且我在A頁面中有個button 其click function 為this.router.navigate([‘A’]),但是當我點擊按鈕時,畫面並未刷新,必須先轉頁至B再轉回A才會刷新。
請問該如何讓router可以觸發並使得該component整個重新刷新(包含html、component)?
你的使用情境是什麼? 為什麼想要重新整理相同網址的頁面?
因為有時候需要網頁重新整理(有時候就是手賤,會去按到F5),但在angular中如果是使用F5 代表著是整個網頁重新載入
我不希望在某個component操作過程中需要該component重新整理時是將整個網頁重新載入,而只是單單該component重新刷新(載入)。
由於我使用preload的頁面,每次重新整理都會跳出的話,對於使用者的感覺會覺得很煩,另一方面如果每次都重新載入代表重新整理需要載入所有需要檔案,所需的時間將會更長
你是有什麼內容是需要重新reload該頁面嗎?
如果是靜態內容,他不重新讀取不是更好.
所以我還不是很了解你想要達到的目標是什麼? 先撇開 F5 手動重新整理頁面。
這不曉得算不算同一個類型的問題,就是在網頁設計了一個navigation的選單,點選了menu A 進去後,填一些資料填一半,然後不填了,再按一次menu A,component並不會reload,查了一下,angular 5有onSameUrlNavigation屬性可使用,但用angular2似乎比較麻煩(https://github.com/angular/angular/issues/13831
),再不升級的狀況下是否有什麼方法可以解決呢?
有些人就是習慣直接按menu上的選單,來重load整個頁面。@@"
想先問一下,沒有打算升級的原因是?
如果沒有特殊原因,我會比較建議升級,不止功能的進步,還有bundle size的改進
這一個問題,我去年好像有惡搞的解法(很不推那樣子使用)
升級比較快
謝謝K大跟J大的回覆。
其實很想升級,(不升級連primeNG的TurboTable都不能用 …Orz),只是目前人力不足,擔心升級後會有一些影響。所以暫時做個workaround,之後時間充裕再來升級。
目前我是先參考網路做法用A -> B -> A,中間的B是個空白頁,來做reload @@"
像這樣
directToUrl(url:string){
this.router.navigateByUrl(’/reload’, {skipLocationChange: true}).then(()=>
this.router.navigate([url]));
}
如果是primeng我建議早點升級喔…
我曾經被陰過,他的元件結構有調整,導致css整個跑掉QQ