Angular UI Router v0.2.10& Angular 1.2.6
我在这里创建了一个Plunkr:http://plnkr.co/edit/HrGfNcuIv16rKp7GchVJ?p=preview
当用户更改$state
时,他们的滚动位置会保留在当前滚动位置的任何位置。有时,我希望用户的滚动位置在状态更改时跳转到页面顶部。例如,如果用户单击页脚中的链接(请参阅Plunkr),则新状态应从页面顶部开始。
有条件地将那些规则应用于状态变化的最佳方式是什么?
答案 0 :(得分:0)
创建应用于容器的滚动到顶部指令。基本上允许传入一个值,当更改时会将指令元素滚动到顶部:
<div class="myContainer" scrollToTop="someScopeVar"></div>
然后查看状态更改,并在指令上设置值以强制滚动到页面顶部。
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){
$scope.someScopeVar = !$scope.someScopeVar;
});