Handlebars + Handlebars -helper-prettify在node.js:空结果



我尝试使用以下代码将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字符串的开头和结尾使用或不使用空格运行它的意思。

最新更新