如何使用window.location.reload重新加载一次?

时间:2015-07-01 01:24:13

标签: javascript angularjs

我在我的网络应用程序中使用AngularJs并且我的登录遇到了问题,我发现的唯一解决方案是在登录后重新加载页面,但我只需要一次,但现在是无限循环。我怎样才能使用Window.location.reload()一次

登录方式:

.success(function (data) {

        $scope.tokengenerated = data.token;

        $cookies.put('Username', UsernameValue);

        $cookies.put('Token', $scope.tokengenerated);

        $location.path("/incidents");
})

2 个答案:

答案 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");
}