我尝试使用以下代码在prettify helper中使用把手:

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);


那应该工作。注意,prettify返回一个Handlebars.SafeString(),因此transformedHtml将是一个javascript对象,除非您在prettify标记之外添加更多标记。您将通过在templateHtml字符串的开头和结尾有空格且无空格的情况下运行它来理解我的意思。

关于javascript - Node.js中的 Handlebars + Handlebars -辅助工具-空结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24152877/

10-11 04:27