使用AngularJs更改自定义URL的显示URL

时间:2017-08-15 14:24:09

标签: angularjs url url-routing

我在导航栏中有这段代码

<li><a href=#products?scrollTo=products">Products</a></li>

这在控制器中

$scope.$on('$routeChangeSuccess', function (newRoute, oldRoute) {
$location.hash($routeParams.scrollTo);
$anchorScroll();
});

,这在配置

$routeProvider.when('/products', { templateUrl: '../pages/home/home.html',
controller : 'mainController' });

它按预期工作,因为它滚动到#products div所在的位置,即使我不在主页中。 (返回主页并自动向下滚动)。

现在,在URL中显示/ products?scrollTo = products#products

是否可以通过www.home.com或www.home.com/products更改内容?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以将哈希值传递给$ anchorScroll,它会在不将其添加到URL的情况下传递给它。

$scope.$on('$routeChangeSuccess', function (newRoute, oldRoute) {
    $anchorScroll($routeParams.scrollTo);
});