Я новичок в AngularJS. Другой разработчик объединил нашу платформу электронной коммерции, используя AngularJS как часть решения. У нас есть встроенные модальные оверлеи, и я конвертирую все наши AngularJS alert() для использования модального.
Пока что так хорошо, за исключением финального предупреждения(), которое запускается, когда сеанс сеанса пользователя вошел в систему. Мы используем http://adamalbrecht.com/2013/12/12/creating-a-simple-modal-dialog-directive-in-angular-js/ для создания нашей модальной директивы, но я не могу заставить это работать без пользовательский ввод - все эти модальности запускаются пользователями, нажимающими кнопки и входы, но это не вызвано действием пользователя. Все, что я пробовал, привело к тому, что ReferenceError: $ scope не определен
Я хотел бы поделиться кодом, но он принадлежит компании, поэтому я не могу поделиться им. Просто интересно, если кто-то там собрал модальный метод AngularJS, который запускает, когда пользователь регистрируется в сеансе, чтобы сообщить им, что им нужно снова войти в систему.
Благодарю.
Это обычная проблема в приложениях с одной страницей. С помощью Angular вы можете решить это с помощью перехватчика $ http.
Идея заключается в том, что сеанс истек в первый раз, когда пользователю требуется какое-либо действие из бэкэнд для перенаправления на страницу входа в систему или модальное диалоговое окно, используемое для входа в систему. Истекший сеанс обнаружен из самого ответа.
Пример:
.factory('httpAuthInterceptor', function ($q) {
return {
'responseError': function (response) {
// NOTE: detect error because of unauthenticated user
if ([401, 403].indexOf(response.status) >= 0) {
// NOTE: here you can trigger login modal dialog opening
return response;
} else {
return $q.reject(rejection);
}
}
};
})
.config(function ($httpProvider) {
$httpProvider.interceptors.push('httpAuthInterceptor');
});