Handlebars 助手无法在 Express 中使用全局变量

Handlebars helper not working with global variable in Express

我在 Node、Express 和 express-handlebars 上有一个应用 运行。该变量是分配给 res.locals 和条件助手 "ifCond"(如 this one)的查询结果。需要渲染的代码是部分的。问题是 helper 在使用变量时不起作用:

//getting the variable works
{{groups}} // Group2 

//works with standart block helper
{{#if groups}}1{{else}}2{{/if}} //  1  

//helper is working
{{#ifCond 5 "==" 5}}equal{{else}}not equal{{/ifCond}} //equal

//not working when using variable with helper
{{#ifCond groups "==" Group2}}equal{{else}}not equal{{/ifCond}} //not equal

什么会导致它不能与助手一起工作?谢谢。

您需要将 Group2 放在引号中,以便模板解析器将其视为字符串:

{{#ifCond groups "==" "Group2"}} 

因为您正在尝试将字符串传递给您的助手。当你不在它周围加上引号时,handlebars 解析器会尝试将它解析为变量名,就像它前面的 groups 一样。