如何从Handlebars helper将对象或json数据返回到html

时间:2016-09-17 09:55:33

标签: javascript handlebars.js metalsmith

这是我在html布局中的车把块:

{{json language}}

这是我的主build.js中的车把助手:

  handlebars.registerHelper('json', function(language) {
    var data = {
      "marathi" : "m",
      "hindi" : "h",
      "english" : "e"
    }
    return ??
  }); 

如何将“数据”返回到上面相同的html布局?它可以在HTML中的任何地方。 “语言”来自markdown文件中的yaml frontmatter。如果可能的话,我想根据“语言”的值来遍历特定的json。

谢谢!

1 个答案:

答案 0 :(得分:0)

以下是一个示例(jsfiddle):

// In your HTML page:
// <script id="my-template" type="text/x-handlebars-template">{{json date}}</script>
// <output></output>

// Define the helper
Handlebars.registerHelper('json', function(context, options) {
  return JSON.stringify(context, null, 2);
});

// Usage
var source = document.querySelector("#my-template").innerHTML;
var template = Handlebars.compile(source);
var html = template({
  title: 'Lorem Ipsum Dolor',
  date: {month: 'January', day: 13, year: 2012}
});

document.querySelector('output').innerHTML += '<pre>'+ html +'</pre>';