javascript - U haz Backbone retroactive `on` 事件监听器?

标签 javascript backbone.js marionette

我的目标是能够让此代码运行 alert(),即使事件是在监听器设置后触发的。标准 Backbone.Events.on 不支持这个。

app.trigger('alarm');

app.onRetro('alarm', function(){
  alert();
});

只要事件已经至少触发一次,追溯事件监听器就应该立即触发。它们还应该继续为每个后续触发器触发。

可以通过检查 app._events.alarm.length 来编写一些东西来处理这个问题,但我想知道是否有人已经解决了这个问题。

最佳答案

这是一个 example这将帮助您实现您的目标。

在这个例子中,如果你调用:

Backbone.Events.trigger('alarm', { retro: true });

报警事件将等待下一次调用

Backbone.Events.on('alarm', callback)

执行回调。

我不知道你需要什么。所以我设置了一个 retro 事件,一旦它被使用就被删除。您可以根据需要对其进行修改。

关于javascript - U haz Backbone retroactive `on` 事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22050765/

相关文章:

javascript - 如何忽略 Marionette route 的尾部斜杠?

javascript - Marionette Collection View 多个dom追加

javascript - 从js访问插件 Controller

JavaScript 定时器问题

javascript - 更改所有事件链接的颜色javascript CSS

backbone.js - 如何在使用 Backbone 和 Marionette 的 Handlebars 模板中获取模型后更新数据?

javascript - 如何让选定的单选按钮在单击提交后显示特定的隐藏 div?

javascript - Backbone JST 模板,如何渲染 Rails 部分

php - 如何将 id 与主干中的表行删除按钮关联

javascript - 类型错误 : Cannot read property 'sortingLevel' of undefined