#angularjs
#angularjs
Вопрос:
Я пытаюсь перенаправить пользователей, которые не вошли в мое приложение, на страницу входа. В настоящее время мой код работает на всех страницах, кроме одной.
app.run(['$rootScope', '$location'], function($rootScope, $location){
if(!loggedIn){
var returnTo = $location.path();
$location.search("ReturnTo", returnTo);
$location.path("account/login").replace();
}
}
Пока я знаю, что на рассматриваемой странице значение $location .путь обновляется, но он не отражается в строке поиска моего браузера, и я вижу исходный вид страницы, а не вид страницы входа.
Я видел много предложений об использовании $rootScope.apply(), но я также не заставил ни одно из них работать.
Ответ №1:
Просто сделайте $location.url("account/login")
;
Комментарии:
1. У меня это не работает. Единственное преимущество заключается в том, что мне больше не нужно задавать путь и строку запроса отдельно. Как и раньше, простая инструкция console.log() показывает, что объект $location обновляется, но мне по-прежнему представлен исходный вид страницы вместо перехода в форму входа.
2. Могу ли я увидеть маршрут для страницы входа в систему? Возможно, маршрут отличается. Я предполагаю, что это должно быть $location.url(«/ login»);
3.
$routeProvider.when('/account/login',{ templateUrl:'account/account-login.tpl.html', controller:'app.controller.account.login' })
4. Как я уже сказал, маршрут работает на всех других моих страницах, это только одна страница, которая не перенаправляет на страницу входа.