(не) передача локальных переменных в шаблоны Jade в Express (node.js) - PullRequest
4 голосов
/ 20 мая 2011

Вот мой сценарий: у меня есть шаблон 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)" будет просто "false".

Есть ли шансы обойти это?

1 Ответ

4 голосов
/ 21 мая 2011

if (typeof loginError !== "undefined")

Это позволяет вам проверять переменные, которые не существуют.

Как уже упоминалось @GeoffChappel, я уже обратился к этому ранее

Я действительно передумал о том, как они справляются с введением локальных переменных. Я думаю, что они используют правильный парсер или динамически создают новые функции.

...