Angular $location.path() не перенаправляет на все страницы

#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. Как я уже сказал, маршрут работает на всех других моих страницах, это только одна страница, которая не перенаправляет на страницу входа.