Javascript 刷新时从angularjs中的URL中删除hashbang

Javascript 刷新时从angularjs中的URL中删除hashbang,javascript,angularjs,Javascript,Angularjs,当浏览一个在改变路线时使用angularjs的站点时,它会在最后添加一个hashbang,并且可以在刷新时恢复状态(这很酷) 然而,在我的特定项目中,我希望它在刷新时加载主路由(就像没有hashbang一样) 这可能吗?您可以使用一个服务或多个控制器来实现这一点。IMO最简单的方法是设置一个简单的控制器和服务,它包含在每个页面上 大概是这样的: <div style='display:none;' ng-controller='RefreshController'></div&

当浏览一个在改变路线时使用angularjs的站点时,它会在最后添加一个hashbang,并且可以在刷新时恢复状态(这很酷)

然而,在我的特定项目中,我希望它在刷新时加载主路由(就像没有hashbang一样)


这可能吗?

您可以使用一个服务或多个控制器来实现这一点。IMO最简单的方法是设置一个简单的控制器和服务,它包含在每个页面上

大概是这样的:

<div style='display:none;' ng-controller='RefreshController'></div>
控制器:

function RefreshController($location,redirect){
    if($location.path()=='/'){
        redirect.set()
    }
    if(redirect.get()){
        $location.path('/');
    }
}

简而言之,如果您在主页上,它将设置一个服务变量来表示您在主页上。只要不刷新,服务变量状态将是静态的。如果刷新完成且您当前不在主页面上,则服务变量将不同,用户将被重定向到主页面。

我的理解是,您希望在刷新时使浏览器导航到不同的URL。您希望通过javascript实现这一点。我不明白这是如何从javascript实现的。此外,这将不再是刷新,而是其他一些可能会让用户不安的内容。
function RefreshController($location,redirect){
    if($location.path()=='/'){
        redirect.set()
    }
    if(redirect.get()){
        $location.path('/');
    }
}