在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中,这应该会阻止所有行在匹配时被破坏。