(不)将局部变量传递给Express中的Jade模板(node.js)

问题描述:

这是我的场景:我有一个login.jade模板,用于对用户进行身份验证。内部的模板,我有几个,如果像:(不)将局部变量传递给Express中的Jade模板(node.js)

- if (badLogin) 
     div#loginErr 
      | <strong>Please try again</strong> | 
      | The password or username you entered is incorrect. 

- if (loginError) 
     div#loginErr 
      | <strong>Please try again later</strong> | 
      | Our authentication service isn't available at the moment. 

在表达我总是要声明可能在翡翠模板中使用的所有局部变量。否则,我得到:

loginError is not defined 

我的观点是,如果在玉模板我将有10个“如果”包含一个局部变量发言,而不是在渲染时我不得不总是通过这10个变量,即使我只用一个在这种特殊情况下。

我只是认为,如果我没有将任何变量传递给Jade模板,那么“if(var)”的结果就是“false”。

任何工作的机会?

+3

请参阅:http://stackoverflow.com/questions/5748087/using-javascript-code-in-jade-views-ifvariable-shows-undefined-instead-of-pas – 2011-05-20 19:56:51

if (typeof loginError !== "undefined")

这允许你检查不存在的变量。通过@GeoffChappel提到

正如我已经adressed this earlier

我改变我的应该怎么处理,虽然注射局部变量的头脑。我认为他们使用适当的解析器或动态创建新的功能。