2016-12-04 32 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

相关问题