【发布时间】:2013-04-18 16:32:58
【问题描述】:
我想重定向到另一个路由,页面必须刷新并在服务器端处理,所以$location.path(url) 帮不了我。我试过window.location(url),但我有这个错误:window.location is not a function
我的 app.js:
'use strict';
var app = angular.module('myApp', []).
config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider.when('/', {
templateUrl: 'partials/index'});
$routeProvider.when('/logout', {
controller: 'logoutCtrl'});
$routeProvider.otherwise({
redirectTo: '/'});
$locationProvider.html5Mode(true);
}]);
我的注销Ctrl:
function logoutCtrl($scope, $location){
$apply(function() {
$location.path("/users/logout");
});
}
部分/索引包含此链接:
a(href='/logout') Logout
现在我将展示如何使用 Express.js 管理我的路由服务器端:
app.get('/', ctrl.index);
app.get('/partials/:name', ctrl.partials);
app.get('/users/logout', ctrl.logout);
exports.logout = function(req, res)
{
console.log('logout');
req.session.destroy(function(err){ // I destroy my session
res.redirect('/'); // redirection to '/'
});
}
现在,当我点击“注销”时,什么也没有发生,我只是在我的栏中看到这条路线localhost:3000/logout,但如果我输入localhost:3000/users/logout,我会得到预期的结果(会话被破坏并重定向到'/')
【问题讨论】:
标签: javascript angularjs