0
我有一個Backbone視圖MainMenuView。 MainMenuModel有一個子模型ItemModel的數組。主菜單有兩頁,因此它有下一個上一個按鈕。第一頁有6個項目,第二頁有5個項目。現在我有兩種方法分別進入第一頁和第二頁。現在我正在App路由器中創建模型/子模型,並將其傳遞給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');
}