【发布时间】:2012-01-17 02:33:54
【问题描述】:
你能在 .js 文件中放置一个 jsRender 模板吗?原因是,我想包含我的整个插件,我想使用模板而不是编写所有代码来动态创建节点,在单个 javascript 文件中。这可能吗?如果有怎么办?如果没有,我有什么选择?
【问题讨论】:
你能在 .js 文件中放置一个 jsRender 模板吗?原因是,我想包含我的整个插件,我想使用模板而不是编写所有代码来动态创建节点,在单个 javascript 文件中。这可能吗?如果有怎么办?如果没有,我有什么选择?
【问题讨论】:
如果在脚本块中创建模板,则可以获取编译后的函数,转换为字符串,放入脚本文件中:
运行代码:var compiledFunctionString = $( "#myTemplate" ).template().toString();
复制生成的 compiledFunctionString 的字符串值(格式为 "function anonymous($data, $view) { ...content... }")并将其放入您的脚本文件中:function myTemplate($data, $view) { ...content... }。
现在你可以像这样使用它了:
var html = $.render( data, myTemplate );
【讨论】:
$( "#myTemplate" ).template() 但这按照demo link工作:$.templates("#myTemplate")@BorisMoore:谢谢你,很棒的插件! LordZardeck:(你现在可能已经发现了)与 C++ 不完全一样,因为这里的“预编译”只是一个生成的 Javascript 函数,您将在 JS 文件中包含内联函数。
想想 jQuery 插件:tmpl http://api.jquery.com/jquery.tmpl/
【讨论】:
document.createElement 或在 JavaScript 中使用字符串来创建节点。如果 HTML 结构大而复杂,我们可以在 HTML 文件或 JavaScript 文件中编写带有 HTML 标记的结构,然后使用模板引擎进行渲染,例如 tmpl 和mustache