Skip to content

Instantly share code, notes, and snippets.

@RickStrahl
Last active December 8, 2021 10:36
Show Gist options
  • Save RickStrahl/2e485205f9a1a7f9c827c1da172e185b to your computer and use it in GitHub Desktop.
Save RickStrahl/2e485205f9a1a7f9c827c1da172e185b to your computer and use it in GitHub Desktop.
Using Jint to run JavaScript handlebars in C#
[TestMethod]
public void LoadHandleBarsTest()
{
    var engine = new Engine()
        // callback functions
        .SetValue("log", new Action<object>(Console.WriteLine))
        // set global values
        .SetValue("startValue", 10);

    var script = File.ReadAllText("handlebars.js");
    engine.Execute(script);

    var view = new
    {
        template = "Hello <b>{{Name}}</b>",
        model = new {Name = "Rick"}
    };
    
    engine.SetValue("__view",view);            
    script = @"
var template = Handlebars.compile(__view.template);
var html = template(__view.model);
return html;
";

    var result = engine.Execute("(function() {" + script  + "})()")
        .GetCompletionValue()
        .ToObject();

    Console.WriteLine(result);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment