我有一個使用帶角度UI路由器的角度js構建的應用程序。下面是我的應用程序URL刷新在Firefox瀏覽器上不起作用的事件
http://localhost:8082/sample/#/test/1
在瀏覽器地址欄輸入的點擊,頁面刷新發生在鉻, 但它不工作在Firefox。但是,如果URL中有任何更改,則刷新在Firefox中可用。瀏覽器刷新應該在輸入時起作用,即使URL沒有變化。
任何人都有解決方案嗎?
我有一個使用帶角度UI路由器的角度js構建的應用程序。下面是我的應用程序URL刷新在Firefox瀏覽器上不起作用的事件
http://localhost:8082/sample/#/test/1
在瀏覽器地址欄輸入的點擊,頁面刷新發生在鉻, 但它不工作在Firefox。但是,如果URL中有任何更改,則刷新在Firefox中可用。瀏覽器刷新應該在輸入時起作用,即使URL沒有變化。
任何人都有解決方案嗎?
刷新輸入不起作用,因爲您在您的url(錨)使用#
。錨點已經使滾動頁面平滑到頁面上適當的元素ID。所以,如果你想刷新它,請嘗試使用pushState
和沒有#
的網址。
如前所述,url中的「#」表示您正在使用錨點滾動到的瀏覽器,並阻止刷新頁面。這就是每個瀏覽器的默認實現,包括chrome。 Angular使用'#'來防止在頁面之間切換時重新加載瀏覽器。
一個解決方案可以利用HTML5的歷史API,這也將允許您的網址美化,不包括'#'。這是通過在您的配置中設置$ locationProvider.html5Mode(true)來完成的:
angular.module('sample', [])
.config(function($locationProvider) {
//etc..
// use the HTML5 History API
$locationProvider.html5Mode(true);
});
謝謝。但是,當我刷新我得到404錯誤(我使用嵌套狀態) – Nagendra