diff --git a/ckan/public/base/javascript/module.js b/ckan/public/base/javascript/module.js index 877a0858f1d..826297dff61 100644 --- a/ckan/public/base/javascript/module.js +++ b/ckan/public/base/javascript/module.js @@ -255,21 +255,11 @@ this.ckan = this.ckan || {}; * Returns the module object. */ module.initialize = function () { - var registry = module.registry; - // Start caching all calls to .publish() until all modules are loaded. ckan.pubsub.enqueue(); jQuery('[data-module]', document.body).each(function (index, element) { - var names = jQuery.trim(this.getAttribute(MODULE_PREFIX)).split(' '); - - jQuery.each(names, function (index, name) { - var Module = registry[name]; - - if (Module && typeof Module === 'function') { - module.createInstance(Module, element); - } - }); + module.initializeElement(this); }); // Now trigger all .publish() calls so that all modules receive them. @@ -278,6 +268,19 @@ this.ckan = this.ckan || {}; return module; }; + module.initializeElement = function(element) { + var registry = module.registry; + var names = jQuery.trim(element.getAttribute(MODULE_PREFIX)).split(' '); + + jQuery.each(names, function (index, name) { + var Module = registry[name]; + + if (Module && typeof Module === 'function') { + module.createInstance(Module, element); + } + }); + }; + /* Creates a new module instance for the element provided. * * The module factory is called with the sandbox, options object and