backbone.js - Starting/Stopping Marionette Modules and Routing -


how can handle starting/stopping modules between routes without explicitly telling route's controller method start/stop each module.

var approutercontroller = {   index: function() {     // start modules need route here     // in case, homeapp     app.module('homeapp').start();     // stop modules should not running route     // idea, being not has come index route first     // have been many other routes many different modules starting @ each route before here     app.module('module1').stop();     app.module('moduleinfinity').stop();     // ...     // ...     // tedious, expensive, , there has better way.   },   someotherroutemethod: function() {     // on again   } } 

i know doing wrong here, not fundamentally, please let me know if there better way. module management going key project due fact running on tablet devices.

it seems overkill starting , stopping every module in each route. there isn't built marionette juggling modules that.

what recommend if want write wrapper routes takes list of modules start , function run after starting/stopping modules.

something this:

(function (app) {   var listofallmodules = ["homeapp", "module1", ...];   window.modulewrapper = function (neededmodules, route) {     return function () {       _.each(_.without(listofallmodules, neededmodules), function (modulename) {         app.module(modulename).stop();       });       _.each(neededmodules, function (modulename) {         app.module(modulename).start();       });       route.apply(this, arguments);     }   }; })(app); 

then, in routers wrap routes need juggle modules.

var approutercontroller = {   index: modulewrapper(["homeapp"], function() {     // routing logic left...   }) }; 

Comments