查看详情以后,返回列表页没有停留在原先查看的地方-angularJS问题的解决办法?求大神指教

查看详情以后,返回列表页没有停留在原先查看的地方-angularJS问题的解决办法?求大神指教

阅读 6.3k
1 个回答

如果你的列表页面是一个分页的页面,那么你需要保存所在页面的页数,可能是在url里面,那么返回的时候就从url中读取页数,加载那个页数的数据。
如果你的列表页面是一个很长的页面,你需要回到原来的位置,那么你可能需要抽象出一个service来记录用户在这个页面上所处的位置,每次进入这个页面都要读取这个service然后scrollTo那个位置。
如果你的列表页面没有分页,也不是很长,那其实最好就返回页面顶部吧。

针对页面很长的情况:

js// PagePosition Service
angular.module('app').factory('PagePosition', function() {
    var _top = 0;
    var _left = 0;

    return {
        getPosition: function() {
            return {
                top: _top,
                left: _left
            }
        },
        setPosition: function(top, left) {
            _top = top;
            _left = left;
        }
    }
});

把这个service注入到你所需要的view或者directive里面,在用户滚动事件中修改position,在返回到这个页面的时候读取position,并且调用scrollTo来定位。

不过我建议对于页面太长的情况,最好是你把你的列表分页显示,因为即使返回的时候能够返回之前的位置,用户体验也挺差的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏