我有收藏清单和货架。我只能下载10个项目。当用户滚动到结束时,我应该提出新的请求。但我不知道如何检测xml或js
中的滚动结束答案 0 :(得分:1)
我发现了Apple的示例代码并发现了一个有趣的事件。它称之为“需要更多”。
//A DocumentController subclass that handles pagination for multiple shelfs
class ShelfDocumentController extends DocumentController {
setupDocument(document) {
super.setupDocument(document)
let shelfs = document.getElementsByTagName("shelf")
if (!shelfs || shelfs.lenth == 0) { return }
//enumerate all shelfs in the template
for (let idx = 0; idx < shelfs.length; ++idx) {
let shelf = shelfs.item(idx)
shelf.page = 1
//using the data url from the shelf's first section (there should only be one section per shelf)
let sections = shelf.getElementsByTagName("section")
if (!sections || sections.length == 0) { continue }
let section = sections.item(0)
let pageUrl = section.getAttribute("dataURL")
//add the listener to the shelf
shelf.addEventListener("needsmore", (event) => {
//replace this code with your logic for getting new pages
shelf.page = shelf.page + 1
if (shelf.page > 10) { return }
let nextPageUrl = pageUrl.replace("\.json", "_" + shelf.page + ".json")
this.fetchNextPageAtURL(nextPageUrl, section);
})
}
}
}
答案 1 :(得分:0)
我有相同的要求,但我找不到任何直接的方法来实现这一点,所以我为我的应用程序所做的,可以告诉你。
Step-1:在使用xml在UI上渲染10个项目时,您可以在xml文件中为ui元素添加一个属性(对我而言是锁定)。
ex:&lt; lockup index =“{{index}}”&gt;
第2步:添加活动列表文档
doc.addEventListener("highlight",_handleHighlight)
第3步:每次锁定获得焦点时,控制权将转到 _handleHighlight 功能。在那里你可以找到索引,基于它执行分页。
_handleHighlight(event) {
var self = this;
var ele = event.target;
var index = ele.getAttribute("index")
// if idndex > (item.count - 3) perform pagination
}