Я использую AngularJs для своего веб-приложения, и у меня проблемы с моим логином, единственным решением, которое я нашел, является перезагрузка страницы после входа в систему, но мне нужно только один раз, но теперь это бесконечный цикл. Как я могу использовать Window.location.reload()
только один раз
Метод входа:
.success(function (data) {
$scope.tokengenerated = data.token;
$cookies.put('Username', UsernameValue);
$cookies.put('Token', $scope.tokengenerated);
$location.path("/incidents");
})
При первом вызове своей страницы вы делаете это так:
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 существует, и я хорошо понял, чего вы пытаетесь достичь, вы его не перезагружаете; если 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
}
Попробуйте это... Это работает!
var refresh = $window.localStorage.getItem('refresh');
console.log(refresh);
if (refresh===null){
window.location.reload();
$window.localStorage.setItem('refresh', "1");
}
if ($location.search().reload === 'true') { $location.path('/mypage'); // refresh the page, but no "reload" this time }
Я думаю, это на моем контроллере инцидентов?