Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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
Javascript 使用jade传递变量时如何检查对象是否存在_Javascript_Node.js_Pug - Fatal编程技术网

Javascript 使用jade传递变量时如何检查对象是否存在

Javascript 使用jade传递变量时如何检查对象是否存在,javascript,node.js,pug,Javascript,Node.js,Pug,在Jade中,您可以像这样将对象传递给客户机 路线: res.render('mypage', { title: 'My Page', myobject : data }); 翡翠模板: extends layout block navbar include includes/navbar block top include includes/top block content script(src='/js/controllers/test-controller.js'

在Jade中,您可以像这样将对象传递给客户机

路线:

res.render('mypage', {
  title: 'My Page',
  myobject : data
});
翡翠模板:

extends layout

block navbar
  include includes/navbar
block top
  include includes/top
block content
  script(src='/js/controllers/test-controller.js')
  script.
    var clientobj = !{JSON.stringify(myobject)}
但是如果myobject不存在呢?在使用这个对象之前,检查它是否存在似乎是最简单的事情(因此,只有在它存在的情况下才尝试定义var
clientobj
),但我在这里使劲想让它发生

例如:


当前将破坏给定的模板,必须有一些语法使此代码更具弹性,当然..

下面的代码片段应该会有所帮助

script
    if myobject
        | var clientobj = !{JSON.stringify(myobject)}
请注意,您不应将
(点)放在
脚本
元素的末尾。否则,
如果myobject…
将被视为文本,而不是Jade代码

或者,这也应该起作用:

script.
    var clientid = #{myobject ? JSON.stringify(myobject) : "undefined"};
在这种情况下,您将获得以下HTML代码,并且必须在页面中的JavaScrip代码中将
clientid
处理为
undefined

<script>var clientid = undefined;</script>
var clientid=未定义;

我希望这会有所帮助

为什么不在创建了
clientobj
之后检查一下呢?如果没有,它将是未定义的为什么不使用jade的If条件呢?啊哈。唉,我一定试过5种不同的条件语句,但都是在脚本标记外使用jade进行检查,而不是像这样在内部进行检查。谢谢你。@OliverLloyd,太好了,我可以帮你解决这个问题
<script>var clientid = undefined;</script>