0
Ниже приводится описание кода ниже:Как отделить код: мой контроллер делает слишком много работы?
- маршрутизатора решает, какой метод контроллера для вызова
- контроллера получает модель (ы)
- контроллера конкретизирует различные представления с моделью
- контроллер инстанцирует макет, ставит просмотров в него
- контроллер помещает макет в приложение
ли контроллер делает слишком много вещей? Я думаю, хороший способ должен быть
- маршрутизатора решает, какой метод контроллера для вызова
- контроллера получает модель (ы)
- контроллера инстанцирует макет с моделью
- контроллер помещает макет в приложение. Завершение работы контроллера
- макет при инициализации конкретизирует представления с моделью
Вопрос: Является ли второй подход лучше? Если да, то как это сделать [3. и 5. хорошего пути]?
Кодекс также в jsfiddle
ContactMgr.Router = Marionette.AppRouter.extend({
appRoutes: {
'contacts/:id' : 'detail'
}
});
ContactMgr.Controller = Marionette.Controller.extend({
detail: function (id) {
var promise = App.request('contact:entities', id);
$.when(promise).done(function (contacts) {
var _model = contacts.get(id);
var contactView = new MyContactView({ model: _model });
var sideView = new MySideView({ model: _model });
var view = new MyLayout();
// MyLayout has mainRegion, sideRegion
view.on('show', function (v) {
v.getRegion('mainRegion').show(contactView);
v.getRegion('sideRegion').show(sideView);
});
App.getRegion('contentRegion').show(view);
// App has contentRegion, other regions
});// when done, end
}// detail, end
});
Если этот вопрос закрывается, то вы, вероятно, следует задать на [Программисты Стек Обмен] (http://programmers.stackexchange.com/). Они с удовольствием расскажут о проблемах дизайна. – jww