Сейчас имеется такой код:
$elem.scroll(function () {
if ($ctrl._loading) return;
if ($elem.scrollTop() - 50< 0) {
$ctrl.onScrolled.call($ctrl.context)
}
})
в результате при подгрузке данных я остаюсь в самом верху, а нужно чтобы скролл оказался на том месте, где началась загрузка данных. (чат vk и т.д)
Думаю, что нужно запоминать положение и скролить после того как новые данные отобразятся
var sh = raw.scrollHeight
....
raw.scrollTop = raw.scrollHeight - sh;
Пытался через
ng-init=($last?finished():null)
но так не работает.
Добавление данных:
this.getMessages(req)
.then(({items}) => {
this.messages.unshift(...items.reverse());
this.isGettingScrolledMessages = false;
this.$rootScope.silent = true;
});
Как узнать, что все данные отображены и можно возвращаться в предыдущее место или может имеются варианты получше ?