diff --git a/src/core/5.inject.js b/src/core/5.inject.js index 3cb1d15bf..2bc662e18 100644 --- a/src/core/5.inject.js +++ b/src/core/5.inject.js @@ -92,12 +92,23 @@ }; var configFunctions = BI.OB.configFunctions = {}; - var runConfigFunction = function (type) { + var runConfigFunction = function (type, configFn) { if (!type || !configFunctions[type]) { return false; } - var queue = configFunctions[type]; - delete configFunctions[type]; + + var queue = []; + if (configFn) { + queue = configFunctions[type].filter(function (conf) { + return conf.fn === configFn; + }); + configFunctions[type] = configFunctions[type].filter(function (conf) { + return conf.fn !== configFn; + }); + } else { + queue = configFunctions[type]; + delete configFunctions[type]; + } var dependencies = BI.Providers.getProvider("bi.provider.system").getDependencies(); var modules = moduleInjectionMap.components[type] @@ -176,6 +187,10 @@ fn: configFn, opt: opt }); + + if (opt.immediately) { + return runConfigFunction(type, configFn); + } }; BI.getReference = BI.getReference || function (type, fn) {