2015-09-09 3 views
0

Я создаю приложение с требованием, чтобы файлы шаблонов находились в двух папках - сначала доступно без ограничений, а второе доступно только для зарегистрированных пользователей.Обработка ошибок AngularJS при загрузке файла шаблона

Все усложняется, когда кто-то обновляет страницу и сеанс до этого. Угловая ошибка (например, 401) в консоли при загрузке файла шаблона, который я хочу избежать. Есть ли способ поймать это событие и получить доступ к статусу ответа, например, перенаправить страницу?

+0

, так что вы хотите перенаправить страницу всякий раз, когда есть ошибка? – Thinker

+0

Прекрасно перенаправлять или изменять location.hash будет одним из вариантов, зависит от статуса ответа. –

+1

Вы думали о перехватчиках $ http? вы можете определить, что делать, когда происходят ошибки, а затем перенаправлять на страницу ошибки? https://docs.angularjs.org/api/ng/service/$http#interceptors –

ответ

1

Для вашего случая мы можем уловить ошибку и перенаправить на страницу с помощью $location.url(). Вот концепция. Теперь у меня есть контроллер и в этом, у меня есть функция успеха и функция ошибки. Всякий раз, когда мы получаем ошибку, функция ошибки запускается, и мы можем передать ссылку на страницу, которую вы хотите перенаправить.

$http.get(url,[params]) 
    .success(function(data, status, headers, config){ 
    // bind your data to scope 
     }) 
    .error(function(data, status, headers, config) { 
     $location.url('/404'); 
     }); 

При использовании $routeProvider, вы можете настроить функцию что-то вроде этого:

$routeProvider 
    .when('/404', { 
     templateUrl: '404.html', 
     controller: 'yourcontroller' 
}); 

И вы можете увидеть description за $ location.url() здесь

Надежда это работы

Смежные вопросы