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 。 为什么?

  1. 这是约翰Resig写的。
  2. 它将由核心jQuery团队作为“官方”插件进行维护。 编辑:jQuery团队已经弃用这个插件。
  3. 它实现了简单性和function性之间的完美平衡。
  4. 它有一个非常干净和深思熟虑的语法。
  5. 它是默认的HTML编码。
  6. 它是高度可扩展的。

更多这里: 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://blog.jquery.com/2010/10/04/new-official-jquery-plugins-provide-templating-data-linking-and-globalization/

官方文档在这里:

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

这里是最新的来源

其他资源

请注意,它仍然没有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'); 

http://jsfiddle.net/molokoloco/w8xSx/ ;)

这不是特定的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模。

http://www.enfusion-framework.org/ (看样品!)

还有一个由beebole-jquery纯html模板重写的页面 – https://github.com/mpapis/jquery-pure-templates

它应该允许更多的自动渲染主要是使用jqueryselect器,更重要的是它不需要将花哨的东西放入HTML。