我有一个使用带角度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