diff options
author | kpdecker <kpdecker@gmail.com> | 2014-08-14 00:28:57 -0500 |
---|---|---|
committer | kpdecker <kpdecker@gmail.com> | 2014-08-14 00:29:25 -0500 |
commit | 9f8110fe1505c6398aaebb1fff9a2ea2a8f99010 (patch) | |
tree | 92688c262694323f91c9045deea71d635ad71b90 /lib/handlebars/runtime.js | |
parent | 0edce6e1d1555cfbe0c55908261fc304a145f1a1 (diff) | |
download | handlebars.js-9f8110fe1505c6398aaebb1fff9a2ea2a8f99010.zip handlebars.js-9f8110fe1505c6398aaebb1fff9a2ea2a8f99010.tar.gz handlebars.js-9f8110fe1505c6398aaebb1fff9a2ea2a8f99010.tar.bz2 |
Implement partial recursive lookup
Diffstat (limited to 'lib/handlebars/runtime.js')
-rw-r--r-- | lib/handlebars/runtime.js | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/handlebars/runtime.js b/lib/handlebars/runtime.js index de6ea1b..bfdb3b4 100644 --- a/lib/handlebars/runtime.js +++ b/lib/handlebars/runtime.js @@ -31,15 +31,15 @@ export function template(templateSpec, env) { // for external users to override these as psuedo-supported APIs. env.VM.checkRevision(templateSpec.compiler); - var invokePartialWrapper = function(partial, indent, name, context, hash, helpers, partials, data) { + var invokePartialWrapper = function(partial, indent, name, context, hash, helpers, partials, data, depths) { if (hash) { context = Utils.extend({}, context, hash); } - var result = env.VM.invokePartial.call(this, partial, name, context, helpers, partials, data); + var result = env.VM.invokePartial.call(this, partial, name, context, helpers, partials, data, depths); if (result == null && env.compile) { - var options = { helpers: helpers, partials: partials, data: data }; + var options = { helpers: helpers, partials: partials, data: data, depths: depths }; partials[name] = env.compile(partial, { data: data !== undefined, compat: templateSpec.compat }, env); result = partials[name](context, options); } @@ -126,7 +126,7 @@ export function template(templateSpec, env) { } var depths; if (templateSpec.useDepths) { - depths = [context]; + depths = options.depths ? [context].concat(options.depths) : [context]; } return templateSpec.main.call(container, context, container.helpers, container.partials, data, depths); @@ -166,8 +166,8 @@ export function program(container, i, fn, data, depths) { return prog; } -export function invokePartial(partial, name, context, helpers, partials, data) { - var options = { partial: true, helpers: helpers, partials: partials, data: data }; +export function invokePartial(partial, name, context, helpers, partials, data, depths) { + var options = { partial: true, helpers: helpers, partials: partials, data: data, depths: depths }; if(partial === undefined) { throw new Exception("The partial " + name + " could not be found"); |