Как выполнить js с помощью Jade?

#node.js #pug #ejs

#node.js #pug #ejs

Вопрос:

мне было интересно, как выполнить js перед рендерингом?

Это не удается

 -#{somejs} // Outputs just the js-code
p #{somejs()} // Executes the js-code, but doenst render the html
  

// В EJS я просто пишу. Но как я могу сделать это с помощью node?

 <%- somejs() %>
  

// Я пытаюсь использовать express-messasges (https://github.com/visionmedia/express-messages ) с использованием Jade вместо ejs

Комментарии:

1. Если обработка сложная, не лучше ли было бы выполнить ваш javascript перед рендерингом шаблона jade? Например, в маршруте, который вызывает res.render() . Для простых вещей, таких как вычисления альтернативной раскраски строк, встроенный - blah() делает свое дело.

Ответ №1:

У меня работают оба следующих:

 - var test = Math.sqrt(16);
  div #{test}
  

или

div #{Math.sqrt(25)}

Если возможно, не могли бы вы, пожалуйста, опубликовать свой somejs() ? Вы уверены, что это создает HTML-строку?

Ответ №2:

Чтобы использовать экспресс-сообщения с помощью jade, используйте этот код в своем шаблоне:

 - var m = messages()
!= m
  

Ответ №3:

В jade просто используйте - someJS() дополнительные примеры смотрите на веб-сайте jade и в readme

Комментарии:

1. Кстати: я пытаюсь использовать express-messasges ( github.com/visionmedia/express-messages ) с использованием Jade вместо ejs