2014-09-08 5 views
1

В настоящее время я использую это в моем контроллере прямо сейчас: (новый угловой не бейте меня)Как перезагрузить/перенаправить страницу после успешного входа?

app.controller('userLogin', ['$scope', '$http', '$location', '$route', function ($scope, $http, $location, $route) { 
    activeLink = 'userLogin'; 
    $scope.submitForm = function(valid) { 
     if (valid) { 
      $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded"; 
      $http.post('/user/login', $('#userLoginForm').serialize()) 
      .success(function(data) { 
       $route.reload(); 
      }); 
     } 
    } 
}]); 

Который работает отлично, когда я перезагрузить страницу на NavBar логин/создать ссылки исчезают и заменяются с выходом из системы, а что нет, но моей проблемы является Navbar не перезагружать, если я вручную не попал CTRL+R

Я попытался с помощью $location.path('/'); и $route.reload();, но мой Navbar не меняется до сих пор, если я вручную перезагрузить страницу.

+0

которые государство или маршрут вы хотите перейти в приложение после успеха? – V31

+0

Просто домашняя '/' // – Datsik

+0

вы используете ui-router или ngRoute? – V31

ответ

1

Будет ли это делать трюк? Это должно полностью перезагрузить страницу на новый адрес.

window.location.replace("/"); 

How to redirect to another webpage in JavaScript/jQuery?

app.controller('userLogin', ['$scope', '$http', '$location', '$route', function ($scope, $http, $location, $route) { 
    activeLink = 'userLogin'; 
    $scope.submitForm = function(valid) { 
     if (valid) { 
      $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded"; 
      $http.post('/user/login', $('#userLoginForm').serialize()) 
      .success(function(data) { 
       window.location.replace("/"); 
       //$route.reload(); 
      }); 
     } 
    } 
}]); 

Вы могли бы также попытаться скрыть весь документ, повторно загрузить содержание документа, и заменить содержимое текущей страницы.

$.get("/", function(data){ 
    $('body').html(data.body); // not sure if data.body will work, sort of guessing here 
}); 

jquery append external html file into my page

Заменить BODY тег, чтобы сделать стили оставаться на месте.

Replace entire HTML document in-place

+0

Это действительно так, но наверняка должен быть какой-то способ сделать это, не обновляя всю страницу? – Datsik

+0

В теории вы также можете попытаться скрыть весь документ, повторно загрузить содержимое документа и заменить содержимое тега HTML или документа. – HelpNeeder

+0

http://stackoverflow.com/questions/8277462/jquery-append-external-html-file-into-my-page – HelpNeeder

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