需要帮助,Handlebars.RegisterHelper

时间:2018-07-19 10:49:35

标签: express handlebars.js

我正在创建一个带有把手的简单JSExpress博客,我希望只有在写评论的用户登录后才能删除评论,因此我需要创建一个助手来检查所登录用户的ID与评论的作者ID相同,我现在正在尝试和阅读一整天的内容,但仍然无法弄清楚应该在哪里编写Handlebars.RegisterHelper()函数,以及在执行其他操作之前应该包括什么那和哪里(在哪个文件中),如果找不到无法逐步找到的指南,或者如果有人可以向我解释它,那将非常棒,我将非常感激!

1 个答案:

答案 0 :(得分:1)

我假设您使用的是express-hbs,但其他车把表达的实现方式应该相同。

完成几次后,这非常简单。这里是一个例子:

const hbs = require('express-hbs');

hbs.registerHelper("boolToCheckbox", function boolToCheckbox(bool) {
  if (bool) return "checked";
});

在上面的示例中,我将Java对象的布尔字段转换为“ checked”,以便在HTML复选框变量中使用。用法的一个例子是。

<input type="checkbox" id="isMaintainer" name="is_maintainer" {{boolToCheckbox is_maintainer}}>

非常简单,registerHelper应该接受一个字符串,这是您将在把手中使用的名称,以调用该函数,然后调用该函数。该函数本身将接受您传递的所有内容(在上述情况下,它是一个名为is_maintainer的布尔属性),并将返回您告诉它的任何内容。这可能是更复杂的HTML代码,也可能像字符串一样简单。

在您的情况下,您的函数可能会接收用户和作者对象,比较ID字段并返回true或false。然后,可以在if语句中使用它来确定是否显示HTML元素。