Angular JS ng-view更改商店滚动位置

时间:2014-05-07 14:55:21

标签: angularjs angularjs-scope ng-view

我使用按钮点击更改到下一页的路线。 Angular JS保留滚动位置,不会滚动到ng-view的顶部。 1.禁用$ anchorScroll不起作用 2.使用窗口滚动不起作用

$rootScope.on("$routeChangeSuccess", function(){
     window.scrollTo(0,90);
})

但是,要在iPad上保留修复标题,可以使用以下窗口滚动。

$(document).on('blur', 'input, textarea', function() {
                    setTimeout(function() {
                        window.scrollTo(document.body.scrollLeft,document.body.scrollTop);
                    }, 0);
                });

有什么建议吗?如何通过angualar js视图清除存储的滚动位置?

3 个答案:

答案 0 :(得分:6)

你想要的不是禁用 anchorscroll,而是启用它。您可以使用以下代码实现所需目的:

<div data-ng-view data-autoscroll="true"></div>

或:

<div data-ng-view data-autoscroll></div>

AngularJS docs中指出的那样。

答案 1 :(得分:2)

对@ Rafael的回复进行了小小的更新。

从Angular 1.3.14开始,您可以使用更简单的语法在使用ngView切换视图时启用自动滚动到顶部:

<div ngView autoscroll></div>

Angular Docs

答案 2 :(得分:1)

您是否尝试在ng-view元素上将autoscroll设置为false?

<div data-ng-view data-autoscroll="false"></div>