我想将handlebars-helpers节点模块与我的把手模板一起使用。我使用hapi作为支持把手的框架。我没有找到任何文档或示例来说明如何使用把手 - 使用把手作为视图引擎的hapi辅助工具。
是否可能,如果可能,解决方案是什么?
答案 0 :(得分:1)
根据hapijs api docs的观点,我认为目前不可能:
http://hapijs.com/api#serverviewsoptions
helpersPath - 帮助程序所在的目录路径。帮助程序是模板中使用的函数,用于使用模板上下文或其他输入执行转换和其他数据操作。 加载helpers目录中的每个'.js'文件,并将文件名用作帮助程序名称。文件必须使用签名函数(上下文)导出单个方法并返回字符串。子文件夹不受支持且被忽略。默认为没有帮助程序支持(空路径)。请注意,jade不支持以这种方式加载助手。
看起来把手助手的签名与hapi所需的签名不同
答案 1 :(得分:1)
启动hapi服务器后
// hapi v17
try {
await server.start();
} catch (err) {
throw err;
}
//......
// add some handlebars helpers
let hbs = server.realm.plugins.vision.manager._engines.hbs;
// console.log('handlebars_helpers', handlebars_helpers);
if (handlebars_helpers) {
for (let key in handlebars_helpers) {
if (key) {
// console.log('key', key, helpers[key]);
hbs.module.helpers[key] = handlebars_helpers[key];
}
}
}
//check your helper is registered
// console.log('hbs.module.helpers', hbs.module.helpers);
// add some handlebars helpers