angular - 滚动到底部时的自动完成事件
问题描述
我已经实现了primeng-autocomplete,我需要在滚动结束时加载下一个元素。我已经完成了primeng已关闭的问题并找到了这个:
https://github.com/primefaces/primeng/issues/513
这是关闭的,但任何想法如何实现这一点。任何帮助将不胜感激。
解决方案
我有解决方法,但我希望有人有更好的选择。Angular v.7,primeng v.7:
在模板中:
- 添加完成方法:
<p-autoComplete
#autocompletePanel
(completeMethod)="completeHandler($event)">
...
</p-autocomplete>
在 *.ts 文件中:
- 添加对自动完成的引用:
@ViewChild('autocompletePanel') autocompletePanel;
- 在构造函数中注入 Renderer2:
constructor(private renderer: Renderer2){}
- 添加处理程序:
public completeHandler(): void {
//you need to wait for panel to be added to the DOM (any better solutions?)
setTimeout(() => {
const autocompletePanel = this.autocompletePanel.el.nativeElement.querySelector('.ui-autocomplete-panel');
if (autocompletePanel) {
this.renderer.listen(autocompletePanel, 'scroll', event => {
if ((event.target.scrollHeight - event.target.clientHeight) === event.target.scrollTop)) {
// ... handle it
console.log('scrolled to the bottom of the panel');
}
}
}
}, 500);
}
推荐阅读
- typescript - 为什么永远不能分配给每种类型?
- r - 使用 R 中的平均值估算缺失值的函数
- html - 如何设置包含在我的 HTML 中且没有符号名称的外部 SVG 文件的样式?
- c# - 在C#中,实现一个复选框来控制从数据库中删除记录时消息框的显示
- swift - Firebase 仪表板上的 Crashlytics Swift 错误“路径”
- amazon-athena - 如何在 AWS Athena 中禁用 ONLY_FULL_GROUP_BY 模式
- java - JAVA - 删除文件扩展名的最有效方法
- java - 自定义 OSRM 服务器 Mapbox Navigation SDK
- node.js - Mongoose 忽略 post 请求中的字符串属性
- powershell - Powershell如何通过仅知道路径的开头来获取文件夹结构深处的文件夹的完整路径