EventBus
Sending events
to send a event:
- a dependency on the eventBus has to be declared
- after that a module, part can send events and named events
To ensure every listener is initialized a module, part should not send events before the postConstruct function was called.
mom.createModule('event-sender')
.dependencie(['event-bus'])
.creator(function(moduleObj, eventBus) {
function postConstruct() {
var namedEvent = {
name : 'NamedEvent',
text : moduleObj.innerHTML
};
eventBus.publish(namedEvent);
var event = {
data : 'testData'
};
eventBus.publis(event)
}
return {
postConstruct : postConstruct
}
});Listening to events
listening to events is done via naming conventions of functions. The convention is allways on + 'EventName'. To listen to every event the function has to be named onEvent.
Modules
every loaded module is automaticaly registered to the eventBus and can listen to events by returning listener functions to mom.
mom.createModule('hello-world-listener')
.creator(function(moduleObj) {
var listener = {
onEvent: onEvent,
onNamedEvent: onNamedEvent
}
eventBus.add(listener);
/////////////////////////////
function onEvent(event) {
moduleObj.innerHtml = event.data;
}
function onNamedEvent(event) {
moduleObj.innerHtml = event.text;
}
});Parts
to listent to events with a part it has to be programmatically registered to the eventBus.
mom.createPart('test-part')
.dependencies(['event-bus'])
.creator(function(eventBus) {
var listener = {
onEvent: onEvent,
onNamedEvent: onNamedEvent
}
eventBus.add(listener);
/////////////////////////////
function onEvent(event) {
console.log(event);
}
function onNamedEvent(event) {
console.log(event);
}
});