我想进行重定向,以重新加载整个页面,以便在页面加载时刷新来自我的Web服务器的cookie。window.location = "/#/Next"
而且window.location.href = "/#/Next"
不起作用,它们会执行不打服务器的Angular路由。
在Angular控制器中发出完整服务器请求的正确方法是什么?
我想进行重定向,以重新加载整个页面,以便在页面加载时刷新来自我的Web服务器的cookie。window.location = "/#/Next"
而且window.location.href = "/#/Next"
不起作用,它们会执行不打服务器的Angular路由。
在Angular控制器中发出完整服务器请求的正确方法是什么?
Answers:
对于<a>
标签:
你要坚持target="_self"
你的<a>
标签
在三种情况下,AngularJS将执行整页重新加载:
<a href="https://stackoverflow.com/ext/link?a=b" target="_self">link</a>
<a href="http://angularjs.org/">link</a>
<a href="https://stackoverflow.com/not-my-base/link">link</a>
使用javascript:
该$location
服务仅允许您更改URL。它不允许您重新加载页面。当您需要更改URL并重新加载页面或导航到其他页面时,请使用较低级别的API :$window.location.href
。
看到:
<a href="..." target="_self">
对我有用。谢谢 !
我们有同样的问题,使用JS代码(即不是使用HTML锚)。这是我们解决的方法:
如果需要,通过服务虚拟更改当前URL $location
。如果您的目标只是当前URL的变体,那么这可能很有用,以便您可以利用$location
帮助器方法。例如,我们$location.search(..., ...)
只是更改查询字符串参数的值。
建立新的目标网址,并$location.url()
在需要时使用当前网址。为了工作,这一新功能必须包括架构,域和端口之后的所有内容。因此,例如,如果您想转到:
http://yourdomain.com/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en
那么您应该将URL设置为:
var destinationUrl = '/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en';
(以及领导者'/'
)。
在底层分配新的目标网址:$window.location.href = destinationUrl;
强制重新加载,但仍处于较低级别: $window.location.reload();
我遇到过同样的问题。当我使用时window.location
,$window.location
甚至<a href="..." target="_self">
路由也不会刷新页面。因此,使用了缓存的服务,这不是我想要的应用程序中的服务。我通过添加window.location.reload()
after window.location
来解决此问题,以强制页面在路由后重新加载。但是,此方法似乎将页面加载两次。可能是一个肮脏的把戏,但它确实起作用。我现在是这样的:
$scope.openPage = function (pageName) {
window.location = '#/html/pages/' + pageName;
window.location.reload();
};
试试这个
$window.location.href="#page-name";
$window.location.reload();