JsRender позволяет регистрировать шаблоны из строк, а также из блоков сценариев.
См. http://www.jsviews.com/#compiletmpl.
Поэтому вместо того, чтобы писать:
var mainTemplate = $.templates("#main-menu-form-tmpl");
а затем вызывая mainTemplate.render(...)
или mainTemplate.link(...)
и т. д., вы можете вместо этого удалить свой блок сценария шаблона и вместо этого передать разметку шаблона в виде строки в $.templates()
, как в:
var mainTemplate = $.templates("... {{if (index && (index == 0 || ...");
...
Или, если вы хотите, вы можете сохранить объявление блока скрипта, но с экранированными амперсандами, а затем получить содержимое блока скрипта в виде строки, удалить амперсанд и передать эту строку в определение вашего шаблона:
var mainTemplateString = $("#main-menu-form-tmpl").text().replace(/&/g, "&");
var mainTemplate = $.templates(mainTemplateString);
...
В качестве альтернативы вы можете обернуть свой блок шаблона в <![CDATA
и снова удалить оболочку, чтобы получить настоящую строку разметки шаблона, которую вы хотите передать в определение шаблона:
var mainTemplateString = $("#main-menu-form-tmpl").text().slice(16, -10);
var mainTemplate = $.templates(mainTemplateString);
...
person
BorisMoore
schedule
07.08.2016