[英]could refresh page without hashtag and be in same page? Angular js
我想从导航栏中重新加载视图,这向我展示了浏览器服务器...我激活了html5Mode:
if(window.history && window.history.pushState) {
$locationProvider.html5Mode(true);
}
Exameple:
-我加载http:// localhost / myBase /
-当我单击链接时,我加载视图并在导航栏中显示此URL http:// localhost / myBase / page1
-然后,刷新页面,由于URL中没有井号标签,因此在导航器中显示服务器文件夹...
可以刷新没有井号标签的页面并且在同一页面中?
有一个复杂的解决方案:如果您可以访问apache配置,并且apache启用了de rewrite模块,则可以制定规则来重写url(如果其中不包含井号)。
Options +FollowSymLinks
RewriteEngine On
RewriteBase /yourBaseUrl
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^#]+)$ #/$1 [NE,R]
将先前的代码放入.htaccess文件或virtualhost配置中,即可解决问题。 但是要仔细修改,您可能会破坏整个Web服务器。
编码愉快!
我认为这是不可能的,因为刷新是浏览器的事情。 它超出了javascript的范围。 浏览器将向服务器发送请求并再次呈现页面,这将再次进行角度引导,并且您的应用程序将获得初始状态。
为了您的目的,我经常在这些解决方案之间使用两种方法:1)我使用angular-ui而不是ng-view,它使用状态而不是address,并且它以无法考虑“ #”,实际上是ui-router模块在“接收”地址时,知道它必须使用的视图。
2)第二种方式不太优雅,您可以在主页中放置一个脚本,如下所示:
function foo('somewhere'){
window.onload=function(){
$location.path(somewhere)
}
}
我曾经使用过该解决方案,因为我已经有一个很大的应用程序,而且我不想替换ng-view,但是从那时起,我一直使用ui-router,因此在某个地方放置了一个引用实际页面的全局变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.