如果您在Handlebars.js中预编译自定义帮助程序,如何注册自定义帮助程序?

时间:2012-02-03 01:03:44

标签: javascript ruby-on-rails node.js handlebars.js

我正在尝试使用命令app/views/templates/walrus.handlebar预编译Handlebars.js模板handlebar app/views/templates/walrus.handlebar,但它失败了,因为模板使用了我在单独的js文件public/javascripts/handlebar_helpers.js中定义的自定义帮助程序。

如何调用Handlebars的命令行版本,以便它知道带有自定义助手的javascript文件?

2 个答案:

答案 0 :(得分:5)

handlebars <input> -f <output> -k <helper>

这是在这里的文档:http://handlebarsjs.com/precompilation.html

2014年3月编辑:

对于阅读文档时遇到问题的人,以下是自定义助手“fullname”

的示例
handlebars myTemplate.handlebars -f handlebars-fullname.js -k fullname

有了这个助手:

Handlebars.registerHelper('fullname', function(person) {
  return person.firstName + " " + person.lastName;
});

您仍然必须在包含handlebars.runtime.js

的页面中包含帮助程序

答案 1 :(得分:0)

handlebars myTemplate.handlebars -f handlebars-fullname.js -k fullname

以上步骤不是强制性的,即使您在预编译期间未指定帮助名称,您的车把模板也会起作用,但是以下代码(基本上应包含所有助手) )需要插入客户端

    Handlebars.registerHelper('fullname', function(person) {
  return person.firstName + " " + person.lastName;
});

我试过这个,它就像一个魅力!