在刷新时从angularjs的URL中删除hashbang
On refresh remove hashbang from URL in angularjs
当导航到一个使用angularjs的站点时,当改变路由时,它会在末尾添加一个hashbang,并且可以在刷新时恢复状态(这很酷)。
然而,在我的特定项目中,我希望它在刷新时加载主路由(就像它会如果没有hashbang)。
这可能吗?
您可以通过使用一个服务或多个控制器来实现这一点。在我看来,最简单的方法是在每个页面上设置一个简单的控制器和服务。
像这样:
<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('/');
}
}
简而言之,如果你在主页上,它会设置一个服务变量来表示你在主页上。只要不进行刷新,服务变量状态将是静态的。如果刷新完成,而您当前不在主页上,则服务变量将不同,并且用户将被重定向到主页。
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- 如何删除在PHP中打印网页时显示的URL
- Javascript匹配以从URL中删除部分文件名-替换最后一次出现的内容
- 使用jQuery删除部分URL
- tinyMCE删除背景图像:“"类似于magento的url的内容
- 谷歌应用脚本中的 UrlFetchApp.fetch 删除 url 参数
- JavaScript删除URL数组中字符之前的所有内容
- 通过regex删除部分url
- 在AngularJs的SPA中,我如何删除“;.html”;来自我的URL
- 通过javascript从浏览器历史记录中删除URL
- history.pushState正在删除部分url
- 如何使用jquery或javascript从url中删除带有页码的尾部斜杠
- Laravel 5和AngularJS删除'#'来自url
- "/"当onclick事件时从URL中删除
- 使用Javascript从url中删除参数
- 从url中删除一个空查询字符串
- 使用jquery从URL中删除查询字符串(处理问题)
- 删除在单击其他选项卡时生成的url查询元素的一部分
- 使用jquery根据URL删除特定元素
- AngularJS路由url删除这个&;#!&;