instanciate app.js object, if not yet done

This commit is contained in:
Ralf Becker 2014-02-13 15:59:31 +00:00
parent 3a5ece79a7
commit 65c3f50923

View File

@ -753,8 +753,8 @@ function et2_rangeSubstract(_ar1, _ar2)
/**
* Call a function specified by it's name (possibly dot separated, eg. "app.myapp.myfunc")
*
* @param string func dot-separated function name
* @param arguments variable number of arguments
* @param {string} _func dot-separated function name
* variable number of arguments
* @returns {Boolean}
*/
function et2_call(_func)
@ -767,10 +767,18 @@ function et2_call(_func)
{
var parts = _func.split('.');
func = parts.pop();
for(var i=0; i < parts.length && typeof parent[parts[i]] != 'undefined'; ++i)
for(var i=0; i < parts.length; ++i)
{
if (typeof parent[parts[i]] != 'undefined')
{
parent = parent[parts[i]];
}
// check if we need a not yet instanciated app.js object --> instanciate it now
else if (i == 1 && parts[0] == 'app' && typeof window.app.classes[parts[1]] == 'function')
{
parent = parent[parts[1]] = new window.app.classes[parts[1]]();
}
}
if (typeof parent[func] == 'function')
{
func = parent[func];