#oop #javascript-framework #javascriptmvc
#ооп #javascript-фреймворк #javascriptmvc
Вопрос:
Учитывая следующий код:
JE.events = {
self: this,
controller: {
init: function(){
$(".monthheader").click(function () {
JE.events.model.get($(this).attr('title'));
return false;
});
return this;
}
},
model: {
get: function(monthnum){
...
}
}
}
Как бы я заменил вызов на
JE.events.model.get(..);
чем-то вроде
self.model.get(..);
Весь код более или менее соответствует этой сути https://gist.github.com/966270 . Идея состоит в том, чтобы создать действительно простой MVC в js (моя первая попытка), который я мог бы легко использовать. Улучшения приветствуются!
Ответ №1:
JE.events = (function {
// Create closure
// Declare controller and model as local
var Controller = {
init: function(){
$(".monthheader").click(function () {
Model.get($(this).attr('title'));
return false;
});
return this;
}
}
var Model = {
get: function(monthnum){
...
}
}
// return object thats assigned to JE.events
return {
controller: Controller,
model: Model
}
)();
Возможно, вы также захотите взглянуть на backbone или позвоночник, которые являются облегченными фреймворками MVC.
Они дают вам несколько простых абстракций и много контроля. Там тоже маленькие и простые.
Если бы мне пришлось писать фреймворк micro MVC с нуля, он сходился бы либо к backbone, либо к spine, поэтому, возможно, было бы лучше использовать один из этих двух.