2016-12-04 113 views
1

我有一個使用帶角度UI路由器的角度js構建的應用程序。下面是我的應用程序URL刷新在Firefox瀏覽器上不起作用的事件

http://localhost:8082/sample/#/test/1 

在瀏覽器地址欄輸入的點擊,頁面刷新發生在鉻, 但它不工作在Firefox。但是,如果URL中有任何更改,則刷新在Firefox中可用。瀏覽器刷新應該在輸入時起作用,即使URL沒有變化。

任何人都有解決方案嗎?

回答

0

刷新輸入不起作用,因爲您在您的url(錨)使用#。錨點已經使滾動頁面平滑到頁面上適當的元素ID。所以,如果你想刷新它,請嘗試使用pushState和沒有#的網址。

0

如前所述,url中的「#」表示您正在使用錨點滾動到的瀏覽器,並阻止刷新頁面。這就是每個瀏覽器的默認實現,包括chrome。 Angular使用'#'來防止在頁面之間切換時重新加載瀏覽器。

一個解決方案可以利用HTML5的歷史API,這也將允許您的網址美化,不包括'#'。這是通過在您的配置中設置$ locationProvider.html5Mode(true)來完成的:

angular.module('sample', []) 

.config(function($locationProvider) { 
    //etc.. 
    // use the HTML5 History API 
    $locationProvider.html5Mode(true); 
}); 
+0

謝謝。但是,當我刷新我得到404錯誤(我使用嵌套狀態) – Nagendra