diff options
author | Yehuda Katz <wycats@gmail.com> | 2012-12-23 20:21:36 -0800 |
---|---|---|
committer | Yehuda Katz <wycats@gmail.com> | 2012-12-23 20:21:36 -0800 |
commit | 070e12f76f251fc038956f61f132dec99a898cd2 (patch) | |
tree | 4f95c5221bd186781f9f359ec05f6f81ed33e0b5 | |
parent | 9385666e08ed86ddb10095ccfef9fa731adae16e (diff) | |
parent | 12f160fb313852f88d7745973124b830ad5f0422 (diff) | |
download | handlebars.js-070e12f76f251fc038956f61f132dec99a898cd2.zip handlebars.js-070e12f76f251fc038956f61f132dec99a898cd2.tar.gz handlebars.js-070e12f76f251fc038956f61f132dec99a898cd2.tar.bz2 |
Merge pull request #390 from eastridge/master
Make {data: true} a default compile option
-rw-r--r-- | lib/handlebars/compiler/compiler.js | 8 | ||||
-rw-r--r-- | spec/qunit_spec.js | 17 |
2 files changed, 23 insertions, 2 deletions
diff --git a/lib/handlebars/compiler/compiler.js b/lib/handlebars/compiler/compiler.js index 1481098..57516a5 100644 --- a/lib/handlebars/compiler/compiler.js +++ b/lib/handlebars/compiler/compiler.js @@ -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); diff --git a/spec/qunit_spec.js b/spec/qunit_spec.js index 07dde10..dcb7150 100644 --- a/spec/qunit_spec.js +++ b/spec/qunit_spec.js @@ -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" }; |