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