jQuery模板引擎
我正在寻找一个模板引擎来使用客户端。 我一直在尝试一些像jsRepeater和jQuery模板。 虽然他们似乎在FireFox中工作正常,但在IE7渲染HTML表格时,它们似乎都陷入了瘫痪的境地。
我也看了一下MicrosoftAjaxTemplates.js(来自http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16766 ),但是事实certificate,它有同样的问题。
任何build议在其他模板引擎使用?
通过jQuery查看Rick Strahl的客户端模板 。 他研究了jTemplates,但是对John Resig的微模板解决scheme做了一个更好的例子,甚至改进了一些。 很好的比较,大量的样本。
只是做了一些研究,我会使用jquery-tmpl 。 为什么?
- 这是约翰Resig写的。
- 它将由核心jQuery团队作为“官方”插件进行维护。 编辑:jQuery团队已经弃用这个插件。
- 它实现了简单性和function性之间的完美平衡。
- 它有一个非常干净和深思熟虑的语法。
- 它是默认的HTML编码。
- 它是高度可扩展的。
更多这里: http : //forum.jquery.com/topic/templating-syntax
jQote: http ://aefxx.com/jquery-plugins/jqote/
有人采取了Resig的微模板解决scheme,并将其打包成一个jQuery插件。
我会用这个,直到Resig释放他自己的(如果他释放他自己的)。
感谢您的提示,ewbi。
jQuery的纳米 :
模板引擎
基本用法
假设你有以下的JSON响应:
data = { user: { login: "tomek", first_name: "Thomas", last_name: "Mazur", account: { status: "active", expires_at: "2009-12-31" } } }
你(们)能做到:
nano("<p>Hello {user.first_name} {user.last_name}! Your account is <strong>{user.account.status}</strong></p>", data)
你准备好了string:
<p>Hello Thomas Mazur! Your account is <strong>active</strong></p>
testing页面…
jQuery-tmpl将在jQuery 1.5中开始:
官方文档在这里:
http://api.jquery.com/category/plugins/templates/
编辑:它已被遗漏的jQuery 1.5,现在将由jQuery UI团队协调,因为它将是即将到来的jQuery UI网格的依赖。
http://blog.jquery.it/2011/04/16/official-plugins-a-change-in-the-roadmap/
不知道它如何处理您的具体问题,但也有PURE模板引擎。
这取决于你如何定义“最好”,请在这里看到我的post的主题
如果你寻找最快的 ,这是一个很好的基准 , DoT似乎赢了,并留下其他人
如果你正在寻找最官方的 JQuery插件,这是我发现的
第一部分:JQuery模板
临时官方的 JQuery模板插件是这个http://api.jquery.com/category/plugins/templates/
但显然,不久之前,它决定保持在Beta版…
注意:jQuery团队已经决定不把这个插件过去testing。 它不再被积极开发或维护。 文档暂时保留在这里(供参考),直到一个合适的replace模板插件准备就绪。
第二部分:下一步
新的路线图似乎瞄准了一套新的插件, JSRender (独立于DOM甚至JQuery模板渲染引擎)和JSViews ,它们有一些很好的数据绑定和观察者/可观察的模式实现
这是关于主题的博客文章
http://www.borismoore.com/2011/10/jquery-templates-and-jsviews-roadmap.html
这里是最新的来源
其他资源
-
关于这个主题的一个很好的介绍http://www.slideshare.net/BorisMoore/jsviews-next-generation-jquery-templates
-
工作演示: http : //borismoore.github.com/jsviews/demos/index.html
请注意,它仍然没有testing版本,只有一个路线图项目,但似乎是一个很好的候选人成为模板和UI绑定官方JQuery / JQueryUI扩展
只是愚蠢的^^
// LighTest TPL $.tpl = function(tpl, val) { for (var p in val) tpl = tpl.replace(new RegExp('({'+p+'})', 'g'), val[p] || ''); return tpl; }; // Routine... var dataObj = [{id:1, title:'toto'}, {id:2, title:'tutu'}], tplHtml = '<div>N°{id} - {title}</div>', newHtml = ''; $.each(dataObj, function(i, val) { newHtml += $.tpl(tplHtml, val); }); var $newHtml = $(newHtml).appendTo('body');
这不是特定的jsquery,但是这里是一个基于JS的模板库,由谷歌作为开源代码发布:
http://code.google.com/p/google-jstemplate/
这允许使用DOM元素作为模板,并且是可重入的(因为模板呈现的输出仍然是可以用不同的数据模型重新呈现的模板)。
其他人指出jquery-tmpl,我已经提出了这些答案。 但一定要看看github叉子。
还有一些重要的修复和有趣的function。 http://github.com/jquery/jquery-tmpl/network
John Resig在他的博客上发布了一个。 http://ejohn.org/blog/javascript-micro-templating/
如果你在.NET Framework 2.0 / 3.5中工作,你应该看看http://jsonFx.net实现的JBST 。 它有一个客户端模板解决scheme,它具有熟悉的JSP / ASP语法,但是在构build时预编译紧凑型caching模板,无需在运行时parsing。 它与jQuery和其他JavaScript库一起工作良好,因为模板本身被编译为纯JavaScript。
我正在使用jtemplates jquery pluging,但performance是非常糟糕的。 我切换到trimpath( http://code.google.com/p/trimpath/wiki/JavaScriptTemplates ),它具有更好的性能。 我没有注意到IE7或FF的任何问题。
对于很轻的工作,jquery-tmpl已经足够了,但是在某些情况下需要数据知道如何格式化(坏事情!)。
如果你正在寻找一个更全function的模板插件,我会build议Orange-J 。 它受到了Freemarker的启发。 它支持如果,否则,循环对象和数组,内联JavaScript,包括模板内的模板,并具有出色的格式化输出(maxlen,wordboundary,htmlentities等)选项。
呵呵,语法简单。
你可能想要想一下你想如何devise你的模板。
许多列出的模板解决scheme(jQote,jquery-tmpl,jTemplates)的一个问题是它们要求您在HTML中插入非HTML,在HTML工具中或HTML开发人员的开发过程中。 我个人不喜欢这种方法的感觉,尽pipe它有利有弊。
还有另外一类使用普通HTML的模板方法,但是允许您使用元素属性,CSS类或外部映射来指示数据绑定。
淘汰赛是这种方法的一个很好的例子,但是我自己并没有使用它,所以我把它留给选票来决定是否别人喜欢它。 至less在我有时间玩更多的时候。
PURE列为另一个答案是这种方法的另一个例子。
作为参考,你也可以看看chain.js ,但是自从它的原始版本以来似乎没有更新。 有关更多的背景信息,请参阅http://javascriptly.com/2008/08/a-better-javascript-template-engine/ 。
Dropbox在网站上使用John Resig的模板引擎 。 他们有点修改它,你可以检查这个Dropbox的JS文件 。 在这个文件中searchtmpl,您将模板引擎的代码。
谢谢。 希望对某人有用。
我目前正在使用一个多HTML模板框架。 这个框架使得在DOM中导入模板数据变得容易很多。 也很棒的MVCbuild模。
还有一个由beebole-jquery纯html模板重写的页面 – https://github.com/mpapis/jquery-pure-templates
它应该允许更多的自动渲染主要是使用jqueryselect器,更重要的是它不需要将花哨的东西放入HTML。