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
一样。
我在 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
一样。