2013-07-20 4 views
0

Я разрабатываю проект AngularJS, и мне было интересно, можно ли создать маршрут, который просто вызывает функцию, а затем перенаправляет.Как вызвать функцию с маршрута в AngularJS

Я хочу использовать это для маршрута /logout, который вызывает функцию logout() в службе аутентификации и авторизации, а затем перенаправляет на /login.

раздел версию моей конфигурации маршрута:

.when('/login', { 
    templateUrl: '/app/login/login.html', 
    controller: 'login' 
}) 
.when('/logout', { 
    redirectTo: '/login' 
}) 

Но очевидно, что это на самом деле не выход из системы пользователя (и потому, что пользователь еще авторизован пользователь вновь возвращаются к корню с помощью службы авторизации) ,

Что было бы хорошим решением? (Самое простое решение, вызывающее его прямо из меню, но это похоже на грязный хак, который использует глобальный охват.)

+0

можно добавить параметр маршрута к/входа в систему, как/логин /: выход из системы, то есть/выход из системы переадресовываем/login/1 и в вашем контроллере входа проверяем $ routeParams.logout, чтобы узнать, не нужно ли его выходить из системы. – shaunhusain

ответ

0

Я не думаю, что это возможно. В качестве альтернативы вы можете просто подключить ng-click с вызовом logout(), а затем перенаправить обратно на экран входа/входа?

+0

Я не был достаточно ясен, но я ищу подход, который не требует просто вызова глобальной функции. – Aidiakapi

0

Запуск функции с ngInit

<div ng-init="runMe()"></div> 

вызова функция, которая находится внутри контроллера

app.controller('myController', function($scope){ 
    $scope.initialize = function() { 
     alert("Kingdom"); 
    } 
}); 
+0

Как я уже говорил на другом ответном пути более года назад, я не искал вызова глобальной функции. В итоге я решил, что директива и служба, которые я использую для меню, связывают обработчик с кнопкой. Поэтому я больше не использую для этого маршрут. – Aidiakapi

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