vertx 和 handlebars 如何注册自定义助手
vertx and handlebars how to register custom helpers
关于车把的唯一 vert.x 参考文档 here 没有提及任何关于注册自定义车把助手的内容。
此外 HandlebarsTemplateEngine API 不提供任何与助手相关的内容。
我们是否应该直接通过 Handlebars handlebars = new Handlebars()
实例化 Handlebars
并在 handlebars
中注册,而不是使用 vert.x 中的 engine
?
HandlebarsTemplateEngine
只是让 Handlebars
与其他 vert.x 模块一起工作所需的胶水。要完全自定义您的引擎,您始终可以获得它的内部引擎对象。
对于 vert.x 4,这已通过添加 unwrap()
方法得到改进:
HandlebarsTemplateEngine vertxHBS = HandlebarsTemplateEngine.create(vertx);
Handlebars handlebars = vertxHBS.unwrap();
从这里您可以使用官方 API 自定义引擎。使用的引擎可在此处获得:https://github.com/jknack/handlebars.java
要了解如何注册助手,请遵循手册:https://github.com/jknack/handlebars.java#registering-helpers
这是一个简单的例子:
HandlebarsTemplateEngine vertxHBS = HandlebarsTemplateEngine.create(vertx);
Handlebars handlebars = vertxHBS.unwrap();
// register a custom helper:
handlebars.registerHelper("blog", new Helper<Blog>() {
public CharSequence apply(Blog blog, Options options) {
return options.fn(blog);
}
});
关于车把的唯一 vert.x 参考文档 here 没有提及任何关于注册自定义车把助手的内容。
此外 HandlebarsTemplateEngine API 不提供任何与助手相关的内容。
我们是否应该直接通过 Handlebars handlebars = new Handlebars()
实例化 Handlebars
并在 handlebars
中注册,而不是使用 vert.x 中的 engine
?
HandlebarsTemplateEngine
只是让 Handlebars
与其他 vert.x 模块一起工作所需的胶水。要完全自定义您的引擎,您始终可以获得它的内部引擎对象。
对于 vert.x 4,这已通过添加 unwrap()
方法得到改进:
HandlebarsTemplateEngine vertxHBS = HandlebarsTemplateEngine.create(vertx);
Handlebars handlebars = vertxHBS.unwrap();
从这里您可以使用官方 API 自定义引擎。使用的引擎可在此处获得:https://github.com/jknack/handlebars.java
要了解如何注册助手,请遵循手册:https://github.com/jknack/handlebars.java#registering-helpers
这是一个简单的例子:
HandlebarsTemplateEngine vertxHBS = HandlebarsTemplateEngine.create(vertx);
Handlebars handlebars = vertxHBS.unwrap();
// register a custom helper:
handlebars.registerHelper("blog", new Helper<Blog>() {
public CharSequence apply(Blog blog, Options options) {
return options.fn(blog);
}
});