如何在Swig模板中调用标准javascript函数?
具体来说,我想调用如何在Swig模板中调用标准javascript函数?,javascript,node.js,express,swig-template,Javascript,Node.js,Express,Swig Template,具体来说,我想调用{%if-typeof(myvar)=“boolean”%}或{%set a=parseInt(myvar)%},但现在它给出了以下错误: SyntaxError:意外令牌!==函数()位于 Object.precompile (/home/aidan/Desktop/nodejs/turbo/node_modules/swig/lib/swig.js:465:11) 在Object.compile (/home/aidan/Desktop/nodejs/turbo/node_
{%if-typeof(myvar)=“boolean”%}
或{%set a=parseInt(myvar)%}
,但现在它给出了以下错误:
SyntaxError:意外令牌!==函数()位于
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/consolid/lib/consolid.js:246:56)
在
/home/aidan/Desktop/nodejs/turbo/node_modules/consolid/lib/consolid.js:146:25
在
/home/aidan/Desktop/nodejs/turbo/node_modules/consolid/lib/consolid.js:99:5
在fs.js:266:14在Object.oncomplete(fs.js:107:15)
您可以定义一个过滤器,然后编写一个
set
语句,将过滤器应用于变量。最后,您可以在if
语句中使用此变量
例如:
然后:
希望这有帮助。Swig似乎解析了您的表达式,无法处理
typeof
(看起来像函数,但不是)。set
语句应该可以工作。你想实现什么?我正在给模板传递一个值,想检查它是否是数组,如果是的话-检查数组是否包含所需的键:if-typeof myvar==“object”和myvar.indexOf(anothervar)
Swig不是JavaScript。这些功能不受支持。
swig.setFilter('isObject', function(element) {
return typeof element == "object";
});
{% set elementIsObject = myvar|isObject %}
{% if elementIsObject %} ... {% endif %}