2015-01-28 4 views
2

В AngularJS у меня есть контроллер входа, который перенаправляется на каждую страницу в приложении, если пользователь приходит на страницу и не входит в систему. После последовательности входа в систему я хотел бы перенаправить пользователя на страницу что они пришли. Каков наилучший способ сделать это?Angularjs как получить URL-адрес?

ответ

1

Вы можете использовать history.back(), чтобы пользователь мог перейти к предыдущей странице. Это работает в каждом случае, за исключением случаев, когда пользователь переходит непосредственно на страницу входа в систему.

Другое решение - передать параметр поиска на страницу входа при переходе с другой страницы. На странице входа вы можете перейти к странице параметра поиска, если она присутствует, и в противном случае перейти к «домашней странице».

+0

Спасибо за ответ! history.back() не подходит для использования в моем проекте, мой проект - многостраничная навигация и каждое меню, чтобы открыть страницу iframe, если страница была другой операцией меню, history.back (path) возвращается не правильно .so мне нужно получить referer. В дополнение к методу прохождения параметров, angularjs не предоставляет метод получения референта, чтобы получить его? Прости! Мой английский не очень хорошо говорит. – mbydzyr

+0

Нет, вы не можете получить предыдущую страницу или реферер в AngularJS, только если вы передадите реферер самостоятельно с параметрами поиска или сохраните предыдущую страницу любым другим способом. Например, вы можете подписаться на событие $ routeChangeSuccess и сохранить предыдущую страницу. – Ricconnect

+0

Я вижу, спасибо! – mbydzyr

0

Возможно, вы можете поймать изменение маршрута, и когда цель является вашей страницей входа в систему, это может спасти старый маршрут. После Логин Вы можете перенаправить к старому маршруту

angular.module('appName') 
    .run(['$rootScope','$location', '$routeParams', function($rootScope, $location, $routeParams) { 
    $rootScope.$on('$routeChangeSuccess', function(e, next, cur) { 
     if (next.path() == 'your/login/path') { 
      $rootScope.savedRoute = $location.path()); 
      $rootScope.savedParams = $routeParams; 
     } 
    } 
    }]); 

я не уверен, если путь() является правильной функцией, но я думаю, что вы можете увидеть, что я имею в виду

+0

next.path() не работает –