I'm a bit lost with implementing MCV pattern on javascript.
Where should events (such as 'click','change') come in on MVC in javascript?
I have this event function,
var EventExample = function (controller, view) {
this.controller = controller;
this.view = view;
return this;
};
EventExample.prototype.clicked = function ( ) {
var $root = this;
var id = $("#input-text").val();
$root.controller.find( id );
return $root.view.render();
};
And I have this function to bind all MVC, Mapper, Service, etc together,
function bootstrapper() {
// get a new model.
var model = new ModelExample();
// get a new model.
var mapper = new MapperExample();
// get a new service.
var service = new ServiceExample( mapper, model);
// get a new controller.
var controller = new ControllerExample(service);
// get a new view.
var view = new ViewExample(model);
// get a new event.
var event = new EventExample(controller, view);
$('#search-button').click(function(){
event.clicked();
});
}
That is how I call the event function in there, but it seems weird.
I looked at this blog, the event (click) seems must be wrapped inside a function? if so, is it supposed to be in a controller, or in a model, or in a mapper?
Are all events considered Observers in the design patterns?
Any ideas how I should go with events?
My entire MVC code is on jsfiffle