Created
February 18, 2015 15:10
-
-
Save lislon/70e877bc99b48d752e6a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Marionette.Module.extend = Marionette.extend; | |
| // Extend the Module prototype with events / listenTo, so that the module | |
| // can be used as an event aggregator or pub/sub. | |
| _.extend(Marionette.Module.prototype, Backbone.Events, { | |
| // Initialize is an empty function by default. Override it with your own | |
| // initialization logic when extending Marionette.Module. | |
| initialize: function(){}, | |
| // Initializer for a specific module. Initializers are run when the | |
| // module's `start` method is called. | |
| addInitializer: function(callback){ | |
| this._initializerCallbacks.add(callback); | |
| }, | |
| // Finalizers are run when a module is stopped. They are used to teardown | |
| // and finalize any variables, references, events and other code that the | |
| // module had set up. | |
| addFinalizer: function(callback){ | |
| this._finalizerCallbacks.add(callback); | |
| }, | |
| // Start the module, and run all of its initializers | |
| start: function(options){ | |
| // Prevent re-starting a module that is already started | |
| if (this._isInitialized){ return; } | |
| // start the sub-modules (depth-first hierarchy) | |
| _.each(this.submodules, function(mod){ | |
| // check to see if we should start the sub-module with this parent | |
| if (mod.startWithParent){ | |
| mod.start(options); | |
| } | |
| }); | |
| // run the callbacks to "start" the current module | |
| this.triggerMethod("before:start", options); | |
| this._initializerCallbacks.run(options, this); | |
| this._isInitialized = true; | |
| this.triggerMethod("start", options); | |
| }, |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment