javascript - 底部开始列表

标签 javascript angular ionic2

我正在使用 Ionic 2。我有一个项目列表:

this.firelist = this.dataService.findMessages(this.chatItem).map(items => {
  this.updateReadMessages(items);
  return items.reverse();
});

以列表形式显示:

<ion-content padding class="messages-page-content">
  <ion-list class="message-list">
    <ion-item class="message-item" *ngFor="let item of firelist | async">
        ....

这可行,但正如你所看到的,我有一个反向列表。所以最新的项目在底部。因此,我想从底部开始显示。

我已经尝试过:

window.setTimeout(()=> {this.content.scrollToBottom();}, 2000);

这可行,但滚动有延迟,并且从视觉上看,滚动看起来不像列表可以从底部开始而不必滚动那样好。

这可能吗?

谢谢

最佳答案

我怀疑您是否会找到一个非常优雅的解决方案,但您可以尝试以下方法:

尝试使用ionViewWillEnter :

  ionViewWillEnter() {
    this.content.scrollToBottom(0)
  }
<小时/>

您还可以尝试绑定(bind)到 ngFor 的最后一个项目,然后在渲染最后一个项目时触发滚动。与此类似的东西:

<ion-item class="message-item" *ngFor="let item of firelist | async; let last = last">
    {{ item }}
    {{ last ? doScroll() : '' }}
</ion-item>

在您的组件中:

export class somePage{
  ...
  constructor(...) {
    setTimeout(() => {
      for (let i = 0; i < 100; i++) {
        this.items[i] = i
      }
    }, 300)
  }
  doScroll(){
    this.content.scrollToBottom(0)
  }
}

关于javascript - 底部开始列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42796440/

相关文章:

javascript - 异步关系上的 Ember 数据计算属性

angular - Angular Dart -选择对象作为模型(不是字符串)

angular - 从父组件重置表单

javascript - 如何更改 Ionic 2 中 md 和 ws 上的后退按钮颜色?

angular - 有没有办法避免在 Ionic 3 中的列表更新后 View 闪烁?

javascript - 如何在 setInterval 循环中设置延迟?

javascript - 将子级列表传递给父级

javascript - 对象字面量内的范围

javascript - 没有平台提供商

ionic-framework - 在 ionic 2 中创建连接时出现 typeorm 问题