有没有办法整合把手 - 助手与hapi?

时间:2015-07-16 20:33:19

标签: handlebars.js helpers view-helpers hapijs

我想将handlebars-helpers节点模块与我的把手模板一起使用。我使用hapi作为支持把手的框架。我没有找到任何文档或示例来说明如何使用把手 - 使用把手作为视图引擎的hapi辅助工具。

是否可能,如果可能,解决方案是什么?

2 个答案:

答案 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