Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Swig模板中调用标准javascript函数?_Javascript_Node.js_Express_Swig Template - Fatal编程技术网

如何在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 %}