搜尋

首頁  >  問答  >  主體

angular.js - 查看詳情以後,返回列表頁沒有停留在原先查看的地方-angularJS問題的解決方法?求大神指教

查看詳情以後,返回列表頁沒有停留在原先查看的地方-angularJS問題的解決方法?求大神指教

黄舟黄舟2819 天前651

全部回覆(1)我來回復

  • ringa_lee

    ringa_lee2017-05-15 16:55:07

    如果你的列表頁面是一個分頁的頁面,那麼你需要保存所在頁面的頁數,可能是在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來定位。

    不過我建議對於頁面太長的情況,最好是你把你的列表分頁顯示,因為即使返回的時候能夠返回之前的位置,用戶體驗也挺差的。

    回覆
    0
  • 取消回覆