2014-02-18 1 views
3

Я пытаюсь вызова /auth/logout URL, чтобы получить перенаправлены после сеанса будет удален:Угловые JS - называйте маршрут без зрения

app.config(['$routeProvider',function($routeProvider) { 
    $routeProvider 
    .when('/auth/logout',{ 
     controller:'AuthLogout' 
     //templateUrl: not needed 

    }) 
}) 
.controller('AuthLogout', ['$window','$location', function ($window,$location) { 
    $window.localStorage.removeItem('user_username'); 
    $window.localStorage.removeItem('user_id'); 
    $window.localStorage.removeItem('user_session_token'); 
    $location.path('/'); 
}]); 

Я на самом деле не нужен вид на контроллер AuthLogout, но если я не укажите templateUrl в routeProvider. Я не могу заставить это работать, а если я укажу templateUrl, он будет работать.

Как я могу вызвать URL-адрес/контроллер без необходимости загружать представление?

+0

шаблона Try: «» немного сложнее, но это должно работать ^^ – Whisher

+0

я получаю бесконечный цикл и сбои браузера с этим: O – sbaaaang

+0

Это странно в том блоке, который вы можете использовать, или в шаблоне или шаблоне, поэтому бесконечный цикл, я думаю, не связан. – Whisher

ответ

6

Вы можете сделать:

.when('/auth/logout', { 
    controller: function(){ 
     //do staff 
    } 
}) 

кстати, может быть есть что-то неправильно в вашем коде потому шаблонные работы и вы можете использовать его в таким же образом

http://docs.angularjs.org/api/ngRoute/provider/$routeProvider

1

использование redirectTo

app.config(['$routeProvider',function($routeProvider) { 
    $routeProvider 
    .when('/auth/logout',{ 
     redirectTo:'/' 

    }) 
}); 

Надеется, что это будет работать для вас :)

+0

проверяет, не помогает ли мне заставить запустить контроллер AthLogout, а затем перенаправить ... – sbaaaang

5

Вы можете использовать обработчик разрешаются в соответствии с пост https://github.com/angular/angular.js/issues/1838

Checkout этот быстрый пример и обратите внимание на предупреждение о в решимости.

http://jsfiddle.net/Wk7WD/34/

.when('/detail/:id/', { 
    resolve: { 
     load: function ($route, dataService) { 
      alert("hello"); 
      //Your statements instead of all this which I found in an example 
      return dataService.load($route.current.params.id); 
     } 
    } 
}) 

Вместо оповещения вы можете иметь свои собственные заявления

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