Javascript 使用jade传递变量时如何检查对象是否存在
在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'
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不存在呢?在使用这个对象之前,检查它是否存在似乎是最简单的事情(因此,只有在它存在的情况下才尝试定义varclientobj
),但我在这里使劲想让它发生
例如:
当前将破坏给定的模板,必须有一些语法使此代码更具弹性,当然..下面的代码片段应该会有所帮助
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>