我正在使用Angular的
我的问题是,当我点击链接时,页面会向下滚动,但在50%的情况下,页面会重新加载,因为URL中的哈希值发生了变化。如何防止Angular重新加载页面?
更新: 我已经找到了解决方法。
scrollTo
和anchorScroll
,代码如下:app.controller('TestCtrl', function($scope, $location, $anchorScroll) {
$scope.scrollTo = function(id) {
$location.hash(id);
$anchorScroll();
}
});
<a ng-click="scrollTo('foo')">Foo</a>
<div id="foo">Here you are</div>
我的问题是,当我点击链接时,页面会向下滚动,但在50%的情况下,页面会重新加载,因为URL中的哈希值发生了变化。如何防止Angular重新加载页面?
更新: 我已经找到了解决方法。
https://groups.google.com/forum/?fromgroups=#!msg/angular/BY2ekZLbnIM/MORF-z2vHnIJ
“that”在这里指的是$location service广播的$locationChangeStart事件。您可以观察该事件并调用event.preventDefault()来停止导航。有人能告诉我如何观察该事件并阻止默认行为吗?
$anchorScroll()
来管理这些链接,或者重新考虑你的设计。顺便说一下,这段代码片段应该放在你的控制器函数中,而不是你的scrollTo
函数中。 - cezar