我正在努力将PDF.JS与Aurelia集成,我目前正致力于滚动绑定行为(当用户滚动文档时加载页面和更新值)。
为了实现这一点,我决定绑定到offsetTop
元素的canvas
属性。我的标记看起来像这样:
<canvas repeat.for="page of numPages" offset-top.bind="offsetTop[page + 1]" id="${'pdfCanvas' + (page + 1)}"></canvas>
问题是,当我尝试运行它时,我收到此错误消息:
Uncaught (in promise) TypeError: Cannot assign to read only property 'offsetTop' of object '#<HTMLCanvasElement>'.
我的问题是 - 有没有办法绑定到&#34;只读模式&#34;?我想监视属性的更改(以便我可以根据偏移量定位来驱动页面更改)但我不想写入它。这可能吗?
谢谢!
答案 0 :(得分:2)
目前我们还没有内置的说法&#34;我想要检查这个元素属性&#34;在绑定表达式中。它虽然在backlog上。
在您所描述的特定情况(scrollTop)中,我们可以做得比脏检查更好,因为有与该属性关联的DOM事件。
找到&#34;滚动容器&#34; element(具有overflow: scroll
的那个)并使用ref
属性为其命名。然后使用scroll
绑定到trigger
事件。触发器表达式应将滚动容器元素的当前scrollTop
分配给视图模型。您可能希望使用throttle
绑定行为来避免执行与滚动事件中执行大量工作相关的问题。
<div ref="myDiv" scroll.trigger="scrollTop = myDiv.scrollTop & throttle">
...
</div>