Angular js - 调用没有视图的路径

时间:2014-02-18 11:32:47

标签: javascript angularjs controllers route-provider

我正在尝试调用/auth/logout网址,以便在删除会话后重定向:

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控制器的视图但是如果我没有在routeProvider中指定templateUrl我无法使其工作,而如果我指定templateUrl它可以工作。

如何在不必加载视图的情况下调用url / controller?

3 个答案:

答案 0 :(得分:6)

你可以这样做:

.when('/auth/logout', {
    controller: function(){
         //do staff
    }
})
你可能在代码中出现了问题 因为模板有效,你可以利用它 同样的方式

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

答案 1 :(得分:5)

您可以根据帖子https://github.com/angular/angular.js/issues/1838

使用解析处理程序

查看此快速示例,并注意解决警告声明。

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);
        }
    }
})

取代警报,您可以拥有自己的陈述

答案 2 :(得分:1)

使用redirectTo

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

    })
});

希望这对您有用:)