Вызовите функции javascript для другого файла из шаблонов EJS в Harp.js

Попытка сделать сайт с Harp.js здесь. Я использую шаблоны ejs и хочу хранить некоторые полезные функции JavaScript в центральном файле. Как я могу это сделать? Я пытался использовать

<% include _render_util.js %>

Но это не работает (похоже, что файл js не анализируется).

Есть идеи? Спасибо!

1 ответ

Решение

Хотя есть способы сделать это (иногда), это не то, что было встроено в Harp.js. Принудительное поведение часто требует времени для отладки и вызывает неожиданные проблемы.

Вот быстрый эксперимент, который я сделал, который работает (я не проверил это тщательно):

helpers.ejs

Я создал say_hello функция, которая берет имя и выводит строку Hello, {name},

<%
say_hello = function (name) {
  return 'Hello, ' + name;
}
%>

index.ejs

я include helpers.ejs (файл, упомянутый выше) в первой строке, а затем используйте функцию во второй строке. Что выводит <h1>Hello, beautiful</h1>,

<% include helpers.ejs %>
<h1><%= say_hello("beautiful") %></h1>

Пример gist: https://gist.github.com/jorgepedret/816c2b3985ad12cef022

На GitHub есть открытая проблема, обсуждающая эту проблему https://github.com/sintaxi/harp/issues/272

Этот пример - скорее взлом, чем рекомендуемое решение. Я видел случаи, когда это неожиданно ломалось.

Другие вопросы по тегам