@oat-sa/tao-item-runner-qti
Version:
TAO QTI Item Runner modules
54 lines (45 loc) • 1.42 kB
JavaScript
define(['lodash'], function (_) { 'use strict';
_ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
//@todo : complete with namespace managements
function EventMgr() {
var events = {};
this.get = function (event) {
if (event && events[event]) {
return _.clone(events[event]);
} else {
return [];
}
};
this.on = function (event, callback) {
var tokens = event.split('.');
if (tokens[0]) {
var name = tokens.shift();
events[name] = events[name] || [];
events[name].push({
ns: tokens,
callback: callback
});
}
};
this.off = function (event) {
if (event && events[event]) {
events[event] = [];
}
};
this.trigger = function (event, data) {
if (events[event]) {
_.forEach(events[event], function (e) {
//@todo check ns:
e.callback.apply(
{
type: event,
ns: []
},
data
);
});
}
};
}
return EventMgr;
});