我正在开发一个项目,我需要在特定页面后更改URL,因为URL中有一些凭据。
我是通过使用location.Replace()
方法做到的。它更改了地址栏中的URL并重新加载了页面,但我不希望这样。
例如,在我的网址abc.com/app/XXXX/#/app/inbox
中,我想删除替换上的XXXX/
。
我使用了location.replace(abc.com/app/#/app/inbox)
。它取代了url,但也重新加载了页面。我不希望在URL更改时重新加载我的页面。
答案 0 :(得分:0)
在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);