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

Проучвах използването на компилирани jade шаблони в браузъра. Нефритът README казва:

Чрез използването на ./runtime.js на Jade можете да използвате тези предварително компилирани шаблони от страна на клиента без самия 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