Powiedzmy, że moja aplikacja działa, ale uwielbiam się uczyć i znajdować najlepszy sposób robienia rzeczy.
Naprawdę doceniam ten wpis na temat Reducing Backbone Routers To Nothing More Than Configuration.
Poniższy bbclonemail, który nie jest używany, wymaga.W jaki sposób powinienem załadować moją aplikację internetową za pomocą narzędzia Backbone.Marionette i wymagać JS
Właściwie moja implementacja jest monolityczny blok (app.js, router.js).
Oto moje pytania:
1) Co powinieneś zwrócić: router module
router.js
?
2) Jak usunąć The Callback Functions
z router.js
?
3) Co powinieneś zwrócić: app module
app.js
?
4) W jaki sposób należy oddzielić app.js
w wielu innych aplikacjach (na przykład: główny, zadania, projekty)
app.js
// app.js
define([
'router'
// some modules
],
function (router, Backbone, HeaderView)
{
"use strict";
var myApp = new Backbone.Marionette.Application();
myApp.addRegions({
header: '#header',
sidebar: '#sidebar',
mainColumn: '#main-column',
rightColumn: '#right-column'
});
myApp.initHeader = function() {
var headerView = new HeaderView();
myApp.header.show(headerView);
}
// many others many views
myApp.start();
myApp.initialize = function() {
router.initialize();
Backbone.history.start();
}
return myApp;
});
router.js
// router.js
define([
// some modules
],
function (Backbone)
{
"use strict";
var AppRouter = Backbone.Marionette.AppRouter.extend({
routes: {
tasks: 'tasks',
projects: 'projects',
// many others keys/values
'*defaults': 'home'
},
getApp: function()
{
var mainApp;
require(['js/app'], function (app) {
mainApp = app;
});
return mainApp;
},
home: function()
{
var app = this.getApp();
app.initHeader();
app.initSidebar();
app.initTaskDetails();
},
// many others callbacks
});
var initialize = function() {
new AppRouter;
};
return {
initialize: initialize
};
});