我正在尝试调用/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?
答案 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
使用解析处理程序查看此快速示例,并注意解决警告声明。
.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:'/'
})
});
希望这对您有用:)