一个简单的事件系统|如何?

时间:2013-03-18 16:13:54

标签: javascript events backbone.js

我想实现这个界面

addListener(name, callback);
removeListener(name, [callback]); // callback is optional
trigger(name);

所有事件都将在内部事件总线上触发

var bus = {}

这不是界面的一部分。

这是我能想象的最简单的界面,实际上很有用。

但是我仍然不知道如何在概念上实现这些接口。我仔细阅读了backbone event system,但还不太明白他们如何实现这个核心功能。

我只想编写一个尽可能简单且基于更复杂的Backbone事件系统的快速10-100线事件系统。

2 个答案:

答案 0 :(得分:3)

您可以使用Backbone.Events模块。

lostechies

无耻地偷走了

您可以使用应用程序级事件聚合器:

MyApp = {};
MyApp.vent = _.extend({}, Backbone.Events);

MyApp.vent.on("some:event", function(){
  alert("some event was fired!");
});

MyApp.vent.trigger("some:event");

答案 1 :(得分:0)

查看最小事件总线库minibus.js。它目前有不同的API,但可能正是您正在寻找的。

var bus = Minibus.create();
bus.on(name, callback);  // add listener
bus.emit(name);          // trigger event
bus.off(name);           // remove listener
相关问题