diff --git a/src/webapp/framework/core/js/FluidIoC.js b/src/webapp/framework/core/js/FluidIoC.js index 423153935b..b16103ecd1 100644 --- a/src/webapp/framework/core/js/FluidIoC.js +++ b/src/webapp/framework/core/js/FluidIoC.js @@ -1074,7 +1074,7 @@ outer: for (var i = 0; i < exist.length; ++i) { if (!base) { return base; } - return fluid.get(base, parsed.path); + return parsed.noDereference? parsed.path: fluid.get(base, parsed.path); }; // unsupported, non-API function diff --git a/src/webapp/framework/renderer/js/RendererUtilities.js b/src/webapp/framework/renderer/js/RendererUtilities.js index 9a955d4d30..77c6915e6b 100644 --- a/src/webapp/framework/renderer/js/RendererUtilities.js +++ b/src/webapp/framework/renderer/js/RendererUtilities.js @@ -302,7 +302,7 @@ fluid_1_5 = fluid_1_5 || {}; var EL = fluid.model.composePath(path, i); var envAdd = {}; if (options.pathAs) { - envAdd[options.pathAs] = EL; + envAdd[options.pathAs] = "${" + EL + "}"; } if (options.valueAs) { envAdd[options.valueAs] = fluid.get(config.model, EL, config.resolverGetConfig); @@ -368,8 +368,15 @@ fluid_1_5 = fluid_1_5 || {}; fluid.transformContextPath = function (parsed, env) { if (parsed.context) { var fetched = env[parsed.context]; + var EL; if (typeof(fetched) === "string") { - return { path: fluid.model.composePath(fetched, parsed.path) }; + EL = fluid.extractEL(fetched, {ELstyle: "${}"}); + } + if (EL) { + return { + noDereference: parsed.path === "", + path: fluid.model.composePath(EL, parsed.path) + }; } } return parsed; diff --git a/src/webapp/tests/framework-tests/renderer/html/RendererUtilities-test.html b/src/webapp/tests/framework-tests/renderer/html/RendererUtilities-test.html index a5f6cac661..4beedab790 100644 --- a/src/webapp/tests/framework-tests/renderer/html/RendererUtilities-test.html +++ b/src/webapp/tests/framework-tests/renderer/html/RendererUtilities-test.html @@ -134,7 +134,13 @@
Description
- + + +