我正在将 PDF.JS 与 Aurelia 集成,并且我想运行两种方法来响应scroll
事件。通常,我会将这两个功能合并为一种方法。但是,对于我的用例,我需要为每种方法使用不同的绑定行为。
我有一个renderHandler
我想像这样使用的scroll.trigger
:
<div ref="container" class="pdf-container" scroll.trigger="renderHandler() & debounce:250">
但是,我还有另一个scrollHandler
(它不处理渲染事件,现在只处理值绑定更新,例如滚动时的页码),我想与这样的节流行为一起使用:
<div ref="container" class="pdf-container" scroll.trigger="scrollHandler & throttle">
分别地,这些工作。我不确定如何将它们放在一起。Aurelia 当前不允许在 a trigger
ordelegate
表达式中使用多个表达式,并且在元素中复制该属性没有任何效果(因为在 Aurelia 的解析过程中,副本可能会被破坏)。
有没有办法对同一事件声明性地使用两个具有不同绑定行为的处理程序?
该框架目前不支持同一事件、元素和绑定命令组合的多个事件绑定。
作为解决方法,你可以添加trigger2
绑定命令:
import {SyntaxInterpreter} from 'aurelia-templating-binding';
SyntaxInterpreter.prototype.trigger2 = SyntaxInterpreter.prototype.trigger;
然后你就可以在同一个元素上使用scroll.trigger
和scroll.trigger2
。
例子:
我今天想到了别的东西——我也许可以
scroll.bind
用来调用其中一个函数,只要它不需要绑定行为或参数。