Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在AngularJS中从路由调用函数_Javascript_Angularjs_Routes_Url Routing - Fatal编程技术网

Javascript 如何在AngularJS中从路由调用函数

Javascript 如何在AngularJS中从路由调用函数,javascript,angularjs,routes,url-routing,Javascript,Angularjs,Routes,Url Routing,我正在开发一个AngularJS项目,我想知道是否有可能创建一个只调用函数然后重定向的路由 我想用它来创建一个/logout路由,该路由调用身份验证和授权服务上的logout()函数,然后重定向到/login 我的路线配置的精简版本: .when('/login', { templateUrl: '/app/login/login.html', controller: 'login' }) .when('/logout', { redirectTo: '/login' }

我正在开发一个AngularJS项目,我想知道是否有可能创建一个只调用函数然后重定向的路由

我想用它来创建一个
/logout
路由,该路由调用身份验证和授权服务上的logout()函数,然后重定向到
/login

我的路线配置的精简版本:

.when('/login', {
    templateUrl: '/app/login/login.html',
    controller: 'login'
})
.when('/logout', {
    redirectTo: '/login'
})
但是很明显,这实际上并没有注销用户(因为用户仍然被授权,所以授权服务会再次将用户返回到根用户)


解决这个问题的好办法是什么?(最简单的解决方案是直接从菜单中调用它,但这感觉像是一个使用全局范围的肮脏黑客。)

我认为这是不可能的。
作为一种替代方法,您是否可以通过logout()调用附加ng click,然后重定向回/login屏幕?

使用
ngInit运行函数

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

你可以在/login中添加一个路由参数,比如/login/:logout,然后让/logout重定向到/login/1,并在登录控制器中检查$routeParams.logout,看看它是否应该让你注销。我还不够清楚,但是我在寻找一种方法,它不只是调用一个全局函数,就像我在一年前的另一个答案中所说的,我不是在寻找调用某个全局函数。我最终选择了我用于菜单的指令和服务将处理程序绑定到按钮的方法。所以我不再使用路线。
app.controller('myController', function($scope){
    $scope.initialize = function () {
        alert("Kingdom");
    }
});