我正在做一个项目,我需要在特定页面后更改URL,因为URL中有一些凭据。
我是用location.Replace()
方法来做的。它改变了地址栏中的URL并重新加载了页面,但我不希望这样。
例如,在我的URL abc.com/app/XXXX/#/app/inbox
中,我想在替换上删除XXXX/
。
我用location.replace(abc.com/app/#/app/inbox)
。它替换了url,但也重新加载了页面。我不希望我的页面在URL更改时重新加载
在app.js文件中添加以下代码。它在给$location.path()
添加一个额外的参数。
app.run(['$route', '$rootScope', '$location', function ($route, $rootScope, $location) {
var original = $location.path;
$location.path = function (path, reload) {
if (reload === false) {
var lastRoute = $route.current;
var un = $rootScope.$on('$locationChangeSuccess', function () {
$route.current = lastRoute;
un();
});
}
return original.apply($location, [path]);
};
}]);
然后在控制器中调用$location.path()
作为
$location.path('/users/' +$scope.userid, false);