MCUT_Supervisor/bs_demo/advanced/scripts/routers/router.js
2025-03-26 10:38:33 +08:00

74 lines
1.5 KiB
JavaScript

/*global define*/
define([
'jquery',
'backbone',
'collections/folders',
'utils/common',
'views/home',
'views/page1',
'views/page2'
], function ($, Backbone, Folders, Common, HomeView, PageOneView, PageTwoView) {
'use strict';
var AppRouter = Backbone.Router.extend({
routes: {
'': 'home',
'home': 'home',
'page1': 'page1',
'page2': 'page2',
'*page': 'setPage'
},
initialize: function(options) {
this.appView = options.view;
this.aggregator = options.aggregator;
this.$menuItems = $('ul.nav li');
},
home: function() {
console.log('home page');
this.selectMenuItem('home');
var folders = new Folders();
var homeView = new HomeView({ collection:folders,aggregator:this.aggregator });
this.appView.setViews(homeView);
},
page1: function() {
console.log('page one');
this.selectMenuItem('page1');
var pageView = new PageOneView();
this.appView.setViews(pageView);
},
page2: function () {
console.log('page two');
this.selectMenuItem('page2');
var pageView = new PageTwoView();
this.appView.setViews(pageView);
},
setPage: function (param) {
console.log(param + ' page');
Common.Page = param || '';
},
selectMenuItem: function (menuItem) {
this.$menuItems.removeClass('active').filter(function() {
return $("a", this).attr('href')===('#'+menuItem);
}).addClass('active');
}
});
return AppRouter;
});