This is an extraction of the Events module of Backbone which can be used standalone (no external dependency), in the browser or in a nodejs environment.
This project started because I appreciate the Backbone.Events
interface &
features while I wanted to keep using it within non-DOM environments (think a
Social API Web Worker for example).
I've ported the original Backbone.Events tests to mocha & chai so I can run them within a nodejs environment and ensure the extracted API actually works as expected without the burden of setting up continuous integration of browser tests.
$ bower install backbone-events-standalone
$ npm install backbone-events-standalone
<script src="backbone-events-standalone.js"></script>
<script>
// use BackboneEvents
</script>
Notes:
- You may want to use the minified version stored in
backbone-events-standalone.min.js
. - Using Bower, files are usually available within
bower_components/backbone-events-standalone
require(["backbone-events-standalone"], function(BackboneEvents) {
// ...
});
var BackboneEvents = require("backbone-events-standalone");
The BackboneEvents#mixin
method helps extending any object or prototype to add eventing
support to it:
var myEventEmitter = BackboneEvents.mixin({});
myEventEmitter.on("foo", console.log).trigger("foo", "hello emitter");
// alternatively
function Plop() {}
BackboneEvents.mixin(Plop.prototype);
(new Plop()).on("foo", console.log).trigger("foo", "hello emitter");
BackboneEvents
API & usage is the same as Backbone.Events.
$ npm test
MIT
Jeremy Ashkenas, Backbone author