Я новичок в nodejs и пытается создать файл нефритовый для содержания HTML myfile.jade
: Вот содержимое файла:Javascript выполнение функции внутри шаблона нефрита
extends layout
block content
script
function capitalize(s) {
console.log("Testing js exec");
return s.charAt(0).toUpperCase() + s.slice(1);
};
table
- each item in list
tr
td
a(href="/collection/#{item.name}") #{capitalize(itemName)}
Однако, при запуске он бросает следующее сообщение об ошибке:
Error: mweb/views/collections.jade:8
6| script
7| function capitalize(s) {
> 8| console.log("Testing js exec");
9| return s.charAt(0).toUpperCase() + s.slice(1);
10| };
unexpected text ;
Если удалить console.log, он выдает ошибку, говоря:
TypeError: mweb/views/collections.jade:18
> 18| a(href="/collection/#{item.name}") #{capitalize(itemName)}
Насколько я понял, в jade-компиляции вызывается capizeize, и функция недоступна, так как тег скрипта также скомпилирован в html. Каков наилучший способ для этого вызова оценить на a) на стороне сервера или б) на стороне клиента?
Thx
спасибо. это работает. Не возражаете ли вы дать какие-либо рекомендации о том, как использовать помощников? – Kiran
Я тоже интересуюсь этими вспомогательными объектами. – caiuspb
Нет специальной библиотеки-помощников. Я имею в виду пользовательские функции как «помощники». Когда вы создаете шаблон, вы передаете свои объекты в качестве ввода, и вместе с данными вы можете передать ссылку на свои вспомогательные/полезные функции. –