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 || ...");
...
或者如果你想要的话,你可以保留脚本块声明,但是带有转义的&符号,然后将脚本块的内容作为字符串获取,并忽略&字符串,并将该字符串传递给你的模板TE定义:
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);
...