如何在Swig模板中调用标准的javascript函数?

时间:2013-12-29 12:36:28

标签: javascript node.js express swig-template

具体来说,我想致电{% if typeof(myvar) == "boolean" %}{% set a = parseInt(myvar) %},但现在它会出现此错误:

  

SyntaxError:意外的令牌!==在Object.Function()处   Object.precompile   (/home/aidan/Desktop/nodejs/turbo/node_modules/swig/lib/swig.js:465:11)   在Object.compile   (/home/aidan/Desktop/nodejs/turbo/node_modules/swig/lib/swig.js:560:16)   在Function.exports.swig.render   (/home/aidan/Desktop/nodejs/turbo/node_modules/consolidate/lib/consolidate.js:246:56)   在   /home/aidan/Desktop/nodejs/turbo/node_modules/consolidate/lib/consolidate.js:146:25   在   /home/aidan/Desktop/nodejs/turbo/node_modules/consolidate/lib/consolidate.js:99:5   在fs.js:266:14 at Object.oncomplete(fs.js:107:15)

1 个答案:

答案 0 :(得分:7)

您可以定义过滤器,然后编写set语句,并将过滤器应用于变量。最后,您可以在if语句中使用此变量。

E.g:

swig.setFilter('isObject', function(element) {
  return typeof element == "object";
});

然后:

{% set elementIsObject = myvar|isObject %}
{% if elementIsObject %} ... {% endif %}

希望这有帮助。