请告诉我,如何禁用自动向上到我的页面顶部? 如果我使用哈希导航:
<a href="#/index">Goto index</a>
我的页面最重要,但如果我使用AngularJS: HTML:
<a ng-href="#/index">Goto index</a>
JS:
$routeProvider.
when('/index', {
template:'...',
controller: 'RouteCtrl'
})
我的页面滚动到顶部。我该如何禁用它?
答案 0 :(得分:23)
我发现你的普通href
不滚动而ng-href
滚动有点奇怪,我认为这是另一回事...
但是,对于解决方案;由浏览器滚动哈希更改,因此通常要禁用它,您需要拦截并preventDefault()
事件,然后自己更改位置。使用Angular时,您可以为<a>
元素定义一些属性指令,也可以只定义自己的a
指令。
如果您使用ng-view
,它会依赖$anchorScroll
服务和视图更新来模拟浏览器通常会执行的操作,因为Angular已经拦截了该事件。您可以通过提供自己的$anchorScroll
来阻止滚动查看加载:
angular.module('yourModule', []).value('$anchorScroll', angular.noop);
答案 1 :(得分:2)
正如AngularJS documentation所示,正确的做法是:
angular.module('yourModule',[]).config( ['$anchorScrollProvider',
function($anchorScrollProvider) {
$anchorScrollProvider.disableAutoScrolling();
}]
);
答案 2 :(得分:1)
试试
assessmentApp.run(['$anchorScroll', function($anchorScroll) {
$anchorScroll = angular.noop;
}])