У меня есть один вид основной линии MainMenuView. MainMenuModel имеет массив подмодулей ItemModel. Главное меню состоит из двух страниц, поэтому у него есть следующие предыдущие кнопки. Первая страница имеет 6 предметов, а вторая страница содержит 5 предметов. Прямо сейчас у меня есть два метода в маршрутизаторе, чтобы перейти на первую и вторую страницу соответственно. На данный момент я создаю модель/подмодули в маршрутизаторе приложений и передаю это для рендеринга метода MainMenuView. Также, когда я нахожусь на второй странице, я хочу отключить следующую кнопку и включить предыдущую кнопку. Аналогично переключению кнопок на первой странице. Также есть события кликов. Я определил помощника для привязки этих событий и переключения состояния кнопок. Его работа, но не выглядит хорошо для меня. Поэтому хотелось спросить, есть ли лучший способ повторного использования одного и того же представления.Магистральный запрос на проектирование
var MainMenuModel = Backbone.Model.extend({
defaults: {
menuItems: []
}
})
var MenuItemModel = Backbone.Model.extend({
defaults: {
title: ''
}
})
var MainMenuView = Backbone.View.extend({
render: function(){
//_.template stuff goes here
}
})
var App = Backbone.Router.extend({
goToFirstPage: function(){
MenuItemModel item1 = new MenuItemModel({title: "One"});
MenuItemModel item2 = new MenuItemModel({title: "Two"});
MenuItemModel item3 = new MenuItemModel({title: "Three"});
MainMenuModel model = new MainMenuModel({menuItems: [item1, item2, item3]});
}
goToSecondPage: function(){
MenuItemModel item4 = new MenuItemModel({title: "Four"});
MenuItemModel item5 = new MenuItemModel({title: "Five"});
MainMenuModel model = new MainMenuModel({menuItems: [item4, item5]});
}
})
//some helper methods:
function bindEventsForFirstPage(){
$("#prev").off('click');
$("#prev").addClass('prev-disabled');
$("#next").click(goToFirstPage);
}
function bindEventsForSecondPage(){
$("#prev").click(goToSecondPage);
$("#next").off('click');
$("#next").addClass('next-disabled');
}