我尝试使用以下代码将Handlebars与美化助手一起使用:
var handlebars = require("handlebars");
var helpers = require('prettify');
var templateHtml = "{{#prettify}}<div class='entry'><h1>{{title}}</h1><div class='body'>{{body}}</div></div>{{/prettify}}";
var templater = handlebars.compile(templateHtml);
var transformedHtml = templater({
title: "Hello World",
body: "De kat krabt de krullen van de trap"
});
console.log(transformedHtml);
但是我得到一个空的结果。我遗漏了什么?如果我删除{{#prettify}和{{/prettify}},它可以工作(但它不是漂亮的打印!)
这个辅助程序是为在汇编中使用而构建的,因此需要调用register
方法来工作:
var handlebars = require("handlebars");
var helpers = require('prettify');
helpers.register(handlebars);
var templateHtml = "{{#prettify}}<div class='entry'><h1>{{title}}</h1><div class='body'>{{body}}</div></div>{{/prettify}}";
var templater = handlebars.compile(templateHtml);
var transformedHtml = templater({
title: "Hello World",
body: "De kat krabt de krullen van de trap"
});
console.log(transformedHtml);
应该可以。注意,pretify返回一个Handlebars.SafeString(),所以transformedHtml
将是一个javascript对象,除非你在prettify
标签之外添加更多的标记。您将看到我在templateHtml
字符串的开头和结尾使用或不使用空格运行它的意思。