我在我的网络应用程序中使用AngularJs并且我的登录遇到了问题,我发现的唯一解决方案是在登录后重新加载页面,但我只需要一次,但现在是无限循环。我怎样才能使用Window.location.reload()
一次
登录方式:
.success(function (data) {
$scope.tokengenerated = data.token;
$cookies.put('Username', UsernameValue);
$cookies.put('Token', $scope.tokengenerated);
$location.path("/incidents");
})
答案 0 :(得分:1)
第一次调用页面时,您可以这样做:
wwww.example.com/mypage?reload=true
然后使用Javascript检查参数是否存在:
if (location.search.indexOf('reload=true') != -1) {
location.href = 'www.example.com/mypage'; // refresh the page, but no "reload" this time
}
或使用Angular.js:
if ($location.search().reload === 'true') {
$location.path('/mypage'); // refresh the page, but no "reload" this time
}
或者,我认为您可以在重新加载页面之前检查是否存在您设置的cookie。如果饼干在那里,我很清楚你想要实现的目标,那么你就不会重新加载它;如果cookie不在那里,你设置它然后重新加载它:
if (!$cookies.get('Token')) {
// set cookies, do whatever you need here
// reload it only once:
$location.path("/incidents");
} else {
// page was already loaded and everything is set
}
答案 1 :(得分:1)
试试这个......这很有效!
var refresh = $window.localStorage.getItem('refresh');
console.log(refresh);
if (refresh===null){
window.location.reload();
$window.localStorage.setItem('refresh', "1");
}