4

这是我的场景:我有一个 login.jade 模板,用于对用户进行身份验证。在该模板中,我有一些 if 是这样的:

- 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)”的结果将只是“假”。

有机会解决这个问题吗?

4

1 回答 1

4

if (typeof loginError !== "undefined")

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

正如@GeoffChappel 提到的,我之前已经解决过这个问题

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

于 2011-05-21T12:45:27.003 回答