hogan.js icon indicating copy to clipboard operation
hogan.js copied to clipboard

Lambda return values are only compiled with immediate context

Open dpatti opened this issue 10 years ago • 1 comments

Take this example:

var identity = function(a){ return a; };

var template =
  "{{#one}}" +
    "Two: {{#i}}{{two}}{{/i}}" +
  "{{/one}}";

var context = {
  one: {},
  two: 2,
  i: function(){ 
    return identity;
  }
};

console.log(hogan.compile(template).render(context));

If we run this as above, we get Two:. If we replace the {{#i}}{{two}}{{/i}} section with just {{two}}, we get the expected output of Two: 2. This seems unnatural to me and maybe even under-defined in the mustache spec, but is this the intended behavior?

dpatti avatar Apr 09 '15 17:04 dpatti

I think it probably is, but I'll check this again.

sayrer avatar May 01 '21 22:05 sayrer