2015-05-30 59 views
9

我正在使用chatapp,並且像大多數chatapps一樣,我的應用程序顯示消息列表。如何從底部開始滾動列表?

  • 該列表是由ng-repeat生成的。
  • 我已將這些消息顛倒過來,以使最新的消息位於最上方,並且最早的消息位於最上方的 。

目前在我的應用程序加載列表滾動下來

$ ionicScrollDelegate

我不喜歡做這種方式。這不是正確的方式,有時這給我一些打開我的應用程序時的性能和加載問題。

我想知道是否有另一種強制方式從底部到頂部開始/呈現列表,而不需要像現在這樣將其滾動到底部。

這是我目前使用的代碼:
在我的HTML:

<script type="text/ng-template" id="home.html"> 
    <ion-view ng-controller="HomeController" title="Home"> 
     <ion-content> 
      <ion-list> 
       <ion-item ng-repeat="message in messages track by $index"> 
        {{message}} 
       </ion-item> 
      </ion-list> 
     </ion-content>  
    </ion-view> 
</script> 

在我app.js

app.run(function($ionicPlatform, $state, $timeout, $localStorage, $location, $rootScope, $ionicScrollDelegate) { 
    document.addEventListener('deviceReady', function() { 
     setTimeout(function() { 
       $ionicScrollDelegate.scrollBottom(true); 
     }, 500); 
    }); 
}) 
+1

請參閱此,它可能會幫助你,但不知道:https://codepen.io/rossmartin/pen/XJmpQr –

回答

1

添加代替手錶:

$scope.$watch('messages', function(newValue, oldValue) { 
    $ionicScrollDelegate.scrollBottom(true); 
}, true); 

原因你正在得到這種行爲是因爲deviceReady不能保證th在項目呈現尚未,這會導致您的列表不滾動任何地方。使用手錶時,您將在數組加載並且值已經存在時進行滾動。

+0

OP要求做到這一點「無需滾動到底部」 – lilbiscuit