如何区分链接点击与转换到

时间:2016-06-27 15:44:43

标签: angularjs angular-ui-router

我正在尝试使用该代码记住页面的滚动位置:

$rootScope.$on('$locationChangeStart', function(angularEvent, nextRoute, currentRoute) {
    $rootScope.scrollPosCache['dailyController'] = $window.pageYOffset;
});

当页面无限滚动时,我使用ui-router's transitionTo来修改浏览器历史记录中的当前网址:

$state.transitionTo('daily', { page: pageIndex }, { notify: false, location: 'replace' });

转换将搜索字符串更改为例如:http://example.com/?page=1/2/3/4/etc

因此,当我进行转换时以及当用户离开列表页面以跟踪指向详细信息页面的链接时,$locationChangeStart代码都在运行。

我如何知道位置变化来自过渡而非点击? (我只想记住页面留下时的滚动位置)

1 个答案:

答案 0 :(得分:0)

解决方案是使用$stateChangeStart而非$locationChangeStart