以下是我的一个 Stimulus 控制器:
import { Controller } from "@hotwired/stimulus"
import InfiniteScroll from 'infinite-scroll'
export default class extends Controller {
static get targets() {
return ["next", "grid", "footer", "infinitescrollelement"]
}
connect() {
let infScroll;
if (this.hasNextTarget) {
infScroll = new InfiniteScroll(this.gridTarget, {
path: '.next_page a',
append: '[data-infinitescroll-target="infinitescrollelement"]',
// append: `.${this.data.get("object")}-top-level`,
scrollThreshold: false,
status: '.page-load-status',
button: '.view-more-button'
})
this.footerTarget.querySelector('.view-more-button').style.display = 'inline-flex'
} else {
this.footerTarget.querySelector('.view-more-button').style.display = 'none'
}
// When new content is appended, re-layout the gallery to ensure new photos position correctly
***infScroll.on('append', (event, response, path, items) => {
***layoutGallery(galleryElement)
***})
}
}
***的三行是我遇到问题的地方。
基本上,当无限滚动添加新内容时,我需要在我的Gallery Controller中运行一个操作。我该怎么做呢?它不能同时运行,只能在调用该无限滚动事件时运行。
有什么想法吗?