1. 程式人生 > >ui-route子路由切換重複點選不重新載入問題

ui-route子路由切換重複點選不重新載入問題

一個不得不說的專案之坑。先描述問題,用angular框架做的專案,路由用的ui-router。奇怪的是進入一個路由之後,再重複點選當前路由對應選單,這個路由對應的html、js並不會重新載入,連快取都不取,是壓根兒沒反應。angular也用了好久了,說實話這個問題一直沒遇到過,其實不是遇到,應該說是沒發現。

經過多次試驗和百度,我自己找到兩個損招,就分享一下,專案上還是不要用了,太損了。實驗中發現當前路由如果切換到其他路由,在進入就可以重新載入。基於這一點,我心生邪念,想了個損招。

在每次點選選單切換路由時,先切到一個沒有實際意義的路由,我叫它假路由。假路由對應一個空頁面,這個空頁面init時再跳回實際上想去的路由。這種辦法依次點選選單操作要跳兩個路由,太惡毒。


第二個辦法是把選單放到最外層ui-view外面,這樣每個頁面都會看到選單,如果有的頁面不想展示還需要手動隱藏,這樣感覺ui-route路由巢狀就廢了,這招我也不能接受。

再後來上git發現$state有個reload可以解決,具體寫法如下

$scope.go=function(){
	$state.reload($state.current.name);//$state需要注入
	$state.go(url, params);
}
然而,這樣寫了之後我的專案依然沒有達到我的預期,我開始懷疑人生,後面和部門同事探討了一下,感覺有可能是ui-route版本可能有問題,然後就換了一個版本

https://cdn.bootcss.com/angular-ui-router/0.4.3/angular-ui-router.js。

這樣這個問題才解決了。