Merge pull request #390 from eastridge/master

Make {data: true} a default compile option
This commit is contained in:
Yehuda Katz
2012-12-23 20:21:36 -08:00
2 changed files with 23 additions and 2 deletions
+6 -2
View File
@@ -1040,7 +1040,9 @@ Handlebars.precompile = function(string, options) {
}
options = options || {};
if (!('data' in options)) {
options.data = true;
}
var ast = Handlebars.parse(string);
var environment = new Handlebars.Compiler().compile(ast, options);
return new Handlebars.JavaScriptCompiler().compile(environment, options);
@@ -1052,7 +1054,9 @@ Handlebars.compile = function(string, options) {
}
options = options || {};
if (!('data' in options)) {
options.data = true;
}
var compiled;
function compile() {
var ast = Handlebars.parse(string);
+17
View File
@@ -730,6 +730,23 @@ test("each with @index", function() {
equal(result, "0. goodbye! 1. Goodbye! 2. GOODBYE! cruel world!", "The @index variable is used");
});
test("data passed to helpers", function() {
var string = "{{#each letters}}{{this}}{{detectDataInsideEach}}{{/each}}";
var hash = {letters: ['a', 'b', 'c']};
var template = CompilerContext.compile(string);
var result = template(hash, {
data: {
exclaim: '!'
}
});
equal(result, 'a!b!c!');
});
Handlebars.registerHelper('detectDataInsideEach', function(options) {
return options.data && options.data.exclaim;
});
test("log", function() {
var string = "{{log blah}}";
var hash = { blah: "whee" };