如果用户已注销,我想将用户发送到登录页面,但它失败了。我有这个配置:
webShopApp.config(function($routeProvider) {
$routeProvider.when('/login', {
templateUrl: 'partials/login.html',
controller: 'LoginController'
});
$routeProvider.when('/:id?/?products', {
templateUrl: 'partials/products.html',
controller: 'MenuController'
});
});
请注意“/:id?/?”整合产品代码。假设网址是'index.html#/ 45 / products'。如果控制器发现用户已注销,则调用
$location.path('/login');
如果我在console.log中指定$ location.path(),它会按预期显示'/ login',但浏览器中的url是'index.html#/ 45 / login'。为什么'45'(id)仍然存在,我如何摆脱它,即重定向到'index.html#/ login'而没有上一个路径的id?
答案 0 :(得分:1)
我猜您应该使用window.location = 'yourUrl';
代替$location.path('/login')
;在这种情况下。但在这种情况下,页面会重新加载。
答案 1 :(得分:0)
看看你是否需要在纯粹的角度训练,所以请避免使用javascript术语和jquery术语,即windows.location和$ location.path;每当用户从应用程序注销时,更好的选择始终是将用户路由到登录页面。 为此,您可以在路由级别指定它,即
$routeProvider.otherwise({redirectTo: "/login"});
或者您可以说点击哪个用户将被重定向到登录页面的注销链接
$routeProvider.when('/logout', {
templateUrl: 'partials/login.html',
controller: 'LoginController'
});
我希望这可能有所帮助。