SerzN1
@SerzN1
Challenge me!

Как организовать загрузку данных с проверкой авторизации в Angular?

Возник такой вопрос. При заходе по роуту срабатывает определенный контроллер и подгружает данные.
Код:
angular.module('app.Images', [])

	.controller('ImagesCtrl', function($scope, $http, $window, imagesUrl) {
		var _this = this;

		$scope.images = {};

		$http.get(imagesUrl)
			.success(checkResponse);

		function checkResponse (data) {
			if (data.success && data.data) {
				$scope.images = data.data;
			} else if (data.error) {
				alert(data.error);
			} else if (data.reload) {
				$window.location.reload(true);
			}
		}


На каждом роуте приходиться проверять data.reload.

Как лучше сделать загрузки данных и подобные проверки на всех точках входа?
  • Вопрос задан
  • 233 просмотра
Решения вопроса 1
SerzN1
@SerzN1 Автор вопроса
Challenge me!
Вы можете добавить перехватчик ответ на $http, глобально или для определенных запросов.

Образец глобального перехватчика ответ:

$httpProvider.interceptors.push(function($window) {
  return {
    response: function(response) {
       if(response.data && response.data.reload) {
            $window.location.reload(true);
       }
    }
  };
});

И большое спасибо stackoverflow, и большой баян "нашим" чудесным ответам - типа погугли чувак!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
в uiRouter и ngRoute этим занимаются ресолверы.

p.s. 2016-ый год, angular 1.5, а у вас мало того что скоуп используется, так еще и контроллеры.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы