在更改路由时导航使用 angularjs 的站点时,它会在末尾添加一个 hashbang,并且可以在刷新时恢复状态(这非常酷)。
但是,在我的特定项目中,我希望它在刷新时加载主路由(就像没有 hashbang 一样)。
这可能吗?
在更改路由时导航使用 angularjs 的站点时,它会在末尾添加一个 hashbang,并且可以在刷新时恢复状态(这非常酷)。
但是,在我的特定项目中,我希望它在刷新时加载主路由(就像没有 hashbang 一样)。
这可能吗?
您可以通过使用一个服务或多个控制器来做到这一点。IMO 最简单的方法是设置一个包含在每个页面上的简单控制器和服务。
像这样的东西:
<div style='display:none;' ng-controller='RefreshController'></div>
服务:
.factory('redirect',function($rootScope){
var rScope={};
rScope.redirect=true;
rScope.set=function(){
rScope.redirect=false;
};
rScope.get=function(){
return rScope.redirect;
};
return rScope;
});
控制器:
function RefreshController($location,redirect){
if($location.path()=='/'){
redirect.set()
}
if(redirect.get()){
$location.path('/');
}
}
简而言之,如果您在主页上,它将设置一个服务变量来表示您在主页上。只要不进行刷新,服务变量状态就会是静态的。如果刷新完成并且您当前不在主页上,则服务变量将不同,并且用户将被重定向到主页。