node.js + EJS + с использованием JavaScript внутри тегов <% - PullRequest
3 голосов
/ 20 мая 2011

Я новичок в node.js. Я пытаюсь использовать шаблоны EJS, и у меня есть небольшое препятствие. если я правильно понимаю, весь код внутри <%%> выполняется на стороне сервера. Что я не знаю, так это как я могу использовать функции javascript, которые расположены в модулях (js-файлах) внутри этих тегов. Должен ли я включить их что-то вроде <script src="...">? но это означает, что он будет отправлен в браузер, но я этого не хочу (или я?). Какова правильная архитектура?


Второй вопрос: что конкретно представляет из себя ejs helper? как я могу сделать один? (srry, я не могу найти простой пример этого)

Ответы [ 2 ]

3 голосов
/ 19 апреля 2013

Старый вопрос, но на случай, если кто-нибудь еще споткнется здесь ...

В Express 3 вы можете добавлять помощников в app.locals. Пример:

app.locals.somevar = "hello world";

app.locals.someHelper = function(name) {
  return ("hello " + name);
}

Они будут доступны внутри ваших представлений следующим образом:

<%= somevar %>
<%= someHelper('world') %>
3 голосов
/ 20 мая 2011

Похоже, вы используете слишком много логики внутри шаблона. Вы не хотите вызывать пользовательские функции, вы не хотите использовать эти HTML-помощники.

Вместо этого вы хотите правильно определить модель данных, привязанную к вашему шаблону, и обернуть свою бизнес-логику вместе с моделью данных.

Затем создайте экземпляр своего объекта данных и передайте его в EJS.

То, к чему ты ведешь, - это адский ад. Цель шаблонов - просто превратить JSON в HTML, используя простые циклы и частичные представления.

...