data should be passed through to partials. closes #111.

This commit is contained in:
Yehuda Katz
2011-12-27 15:57:08 -08:00
parent 69307d0e2b
commit e474e56b80
3 changed files with 29 additions and 4 deletions
+7 -1
View File
@@ -638,7 +638,13 @@ Handlebars.JavaScriptCompiler = function() {};
},
invokePartial: function(context) {
this.pushStack("self.invokePartial(" + this.nameLookup('partials', context, 'partial') + ", '" + context + "', " + this.popStack() + ", helpers, partials);");
params = [this.nameLookup('partials', context, 'partial'), "'" + context + "'", this.popStack(), "helpers", "partials"];
if (this.options.data) {
params.push("data");
}
this.pushStack("self.invokePartial(" + params.join(", ") + ");");
},
assignToHash: function(key) {
+5 -3
View File
@@ -46,16 +46,18 @@ Handlebars.VM = {
};
},
noop: function() { return ""; },
invokePartial: function(partial, name, context, helpers, partials) {
invokePartial: function(partial, name, context, helpers, partials, data) {
options = { helpers: helpers, partials: partials, data: data };
if(partial === undefined) {
throw new Handlebars.Exception("The partial " + name + " could not be found");
} else if(partial instanceof Function) {
return partial(context, {helpers: helpers, partials: partials});
return partial(context, options);
} else if (!Handlebars.compile) {
throw new Handlebars.Exception("The partial " + name + " could not be compiled when running in vm mode");
} else {
partials[name] = Handlebars.compile(partial);
return partials[name](context, {helpers: helpers, partials: partials});
return partials[name](context, options);
}
}
};