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

在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话),但我在这里clientobj我的头,试图让这种情况发生。

例如:

 res.render('mypage', { title: 'My Page' }); 

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

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

 script if myobject | var clientobj = !{JSON.stringify(myobject)} 

请注意,你不应该放. (点)在script元素的末尾。 否则, if myobject ...将被视为文本而不是Jade代码。

或者这也应该工作:

 script. var clientid = #{myobject ? JSON.stringify(myobject) : "undefined"}; 

在这种情况下,您将获得以下HTML代码,您将不得不在页面中的JavaScrip代码中处理undefined clientid

 <script>var clientid = undefined;</script> 

我希望这会有所帮助