我在Angular中有一个固定的顶级菜单但是当我尝试切换页面(在应用程序内)时,浏览器窗口不会向上滚动。
我尝试在我的控制器中执行此操作(每次在应用程序中切换页面时都会加载此代码):
$('body').scroll();
window.scrollTo(0, 0);
$("html, body").animate({ scrollTop: 0 }, 100);
其中任何一个都无效。
我有什么诡计吗?
我也尝试了这个:
$location.hash('#top');
// call $anchorScroll()
$anchorScroll();
但没有成功
答案 0 :(得分:3)
首先,您不应该从控制器附加DOM事件或修改DOM。您可以使用指令。
根据你的问题 - AngularJS有一个名为'$ routeChangeSuccess'的事件。
您可以使用$scope.$on('$routeChangeSuccess', function () {...})
将处理程序附加到此事件,并在其中运行滚动代码。