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

时间:2011-05-20 19:32:48

标签: node.js express pug

这是我的方案:我有一个login.jade模板,我在其中验证用户身份。在那个模板里面我有几个如果:

- 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.

在Express中我总是必须声明可能在该Jade模板中使用的所有局部变量。否则我得到:

loginError is not defined

我的观点是,如果在Jade模板中,我将有10个'if'语句包含局部变量而不是渲染时我将不得不总是传递这10个变量,即使我在这种特定情况下只使用一个。

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

有可能解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

if (typeof loginError !== "undefined")

这允许您检查不存在的变量。

正如@GeoffChappel所提到的,我已经adressed this earlier

我确实改变了他们如何处理注入局部变量的想法。我认为他们使用适当的解析器或动态创建新函数。