Пример использования jade runtime.js

Я изучал использование скомпилированных нефритовых шаблонов в браузере. Нефрит README говорит:

Благодаря использованию Jade ./runtime.js вы можете использовать эти предварительно скомпилированные шаблоны на стороне клиента без самого Jade, все, что вам нужно, это связанные служебные функции (в runtime.js), которые затем доступны как jade.attrs , jade.escape и т. д. Чтобы включить это, вы должны передать { client: true } в jade.compile(), чтобы указать Jade ссылаться на вспомогательные функции через jade.attrs, jade.escape и т. д.

Я не нашел примеров, в которых используется метод runtime.js. Я скомпилировал шаблоны в отдельные js-файлы, но как мне их использовать? Все, что у меня есть сейчас, это несколько функций, называемых анонимными, и нефритовый объект, который я понятия не имею, как использовать.


person Nemo    schedule 20.06.2013    source источник


Ответы (1)


Если вы хотите использовать скомпилированную функцию шаблона jade на стороне клиента, вы должны включить runtime.js на страницу.

runtime.js предоставляет вспомогательные функции, которые используются скомпилированными функциями шаблона jade для вывода html. Это достигается путем присоединения переменной jade к окну, имеющему несколько методов, используемых шаблонами (например, jade.escape).

Например:

<script src='runtime.js'> // from jade repository
<script src='template.js'> // compiled by jade cli
<script>$('body').append(anonymous({local:'value'))</script> // works!

Это успешно добавит отображаемый html в тело. Однако...

<script src='template.js'> // compiled by jade cli
<script>$('body').append(anonymous({local:'value'))</script> // fails...

Обычно это не работает с Uncaught ReferenceError: jade is not defined.

В общем, вам, вероятно, следует переименовать свои функции во что-нибудь кроме anonymous.

person kyriesent    schedule 12.09.2013