gpt4 book ai didi

javascript - Aurelia - 自定义事件 : trigger or delegate?

转载 作者:行者123 更新时间:2023-11-30 07:33:47 26 4
gpt4 key购买 nike

在 Aurelia 中,将事件绑定(bind)到方法是通过 triggerdelegate 完成的。在使用哪一个的文档中有很好的解释: http://aurelia.io/hub.html#/doc/article/aurelia/binding/latest/binding-delegate-vs-trigger/1

但是,文档没有提到 CustomEvent . CustomEvent 的准则是什么?

最佳答案

有点复杂,因为CustomEvent非常可定制,可以在任何时间发送。

Aurelia 文档说 delegate是首选。但是,执行 delegate依赖于 <body> 的全局事件处理程序元素,所以不能总是使用。调度事件的元素,然后冒泡到 <body> , 到 DOM 中所有可见项的根。所以为了制作delegate工作:

  1. 必须在 CustomEvent 上启用冒泡
  2. 发件人元素(dispatchEvent 被调用)应该附加到 DOM 树。这样事件就真正到达了<body>在冒泡的时候。

第 1 点只是一个设置问题,让我们看看第 2 点。这取决于事件是在 之前 还是 之后 View 模型被附加到DOM(在 attached() 回调之前)。如果之前,则delegate行不通,使用 trigger .否则使用 delegate .

发生在 附加到 DOM → 使用 trigger :

  • 构造器
  • 路由器回调:canActivate() , activate()
  • 初始绑定(bind)回调:bind() ,更改了可绑定(bind)的回调,xxxChanged()

肯定发生附加→使用delegate :基本上内置了基于用户的 DOM 事件(单击、选择、更改等)。原因:因为用户只能与我们的 View 模型交互,前提是它已经在 DOM 中。

关于javascript - Aurelia - 自定义事件 : trigger or delegate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41139949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com