Angular -任何更新作用域会导致页面滚动的原因

Angular - Any reason why updating scope would cause page scroll

本文关键字:滚动 任何 更新 作用域 Angular      更新时间:2023-09-26

在Angular中,是否有任何理由更新$scope变量会导致我的页面滚动到顶部?

简单地说,我要更新的变量是$scope.searchResults,但每次更新时,页面都会滚动到顶部。

if ($routeParams.textToSearch == 'new') {
        getService.getResults('EU', 50)
        .then(function (data){
          $scope.searchResults = data.data[0];
        });
    }

任何想法?

按要求详细的HTML -这是在我的<ng-view autoscroll="true"></ng-view>:(注意,我已经尝试自动滚动在false -问题仍然存在。

<div equalizer="'group'" " ng-repeat="question in searchResults">
<div class="searchTile" equalizer="'group'">
        <div id="circle{{$index}}">
          <nvd3 options="circleOptions" data="question.options"></nvd3>
        </div>
</div>
</div>

您的代码中有一个ng-repeat。每当您更新数据时,ng-repeat都必须删除然后重新创建页面中属于它的部分。因此,页面会收缩并重新生长。看起来它已经滚动到顶部了。

将track by添加到ng-repeat中可能会有所帮助,因为它会识别大多数单元格是相同的,因此将它们保留在DOM中,这应该会阻止所有行在匹配时被破坏。