ember.js - 带有新版 ember js 的粘性聊天框
问题描述
我正在尝试使用新版本的 ember js 建立聊天,并且在聊天正文上遇到滚动条问题,基本上我需要的是当用户滚动到底部时,应该显示新消息。如果他们向上滚动阅读旧消息,则聊天保持静止。如何获得这种情况有人可以帮忙吗
解决方案
如果我正确理解您的问题,您希望在用户向下滚动到屏幕底部时加载更多数据。在 Ember Octane 中,处理此问题的最佳方法是使用修饰符。你可以自己写一个,但是有一个非常好的NPM 包可以为你提供这个
完成npm install ember-in-viewport
并重新启动您的 ember 开发服务器后。您可以创建一个包含聊天列表的组件
<ul id="messages">
{{#each this.messages as |message|}}
<li>{{message.txt}}</li>
{{/each}}
<div {{in-viewport onEnter=this.startLoading onExit=this.stopLoading scrollableArea="#messages"}}></div>
</ul>
每当最后div
进入用户屏幕时,它都会调用startLoading
,您可以在其中轮询新消息并更新messages
属性,但只要div
没有离开用户视口,它将调用stopLoading
可以关闭轮询,直到用户到达末尾再次列出。
推荐阅读
- revit-api - 如何使用 Revit API 在给定视图中设置透明墙?
- react-native - 在反应原生应用程序中使用多种语言
- react-native - 为什么我不能更改状态栏的颜色?
- java - 指向抽象类
- opendaylight - 交易链可以提高跟随者阅读的性能吗?
- c# - VirtoCommerce 设置管理员未加载
- python - Matplotlib:交互式 jupyter 图中基于日期时间的 linecollection
- python - pandas apply() 在 groupby() 对象上运行的次数比组数多得多
- c# - 在 IEnumerable 上使用 Linq 扩展时 IronPython 'Type IEnumerable`1[TSource] contains generic parameters'
结构 - c# - Xamarin 表单无法让 Menupage 显示颜色