Handlebars helper在Express中不使用全局变量

时间:2017-09-02 13:41:50

标签: node.js express handlebars.js express-handlebars

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

//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

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

1 个答案:

答案 0 :(得分:1)

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

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

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