我正在寻找一个模板引擎使用客户端。我一直在尝试一些像jsRepeater和jQuery模板。虽然它们在FireFox中运行正常,但在IE7中呈现HTML表格时似乎都崩溃了。

我还查看了MicrosoftAjaxTemplates.js(来自http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16766),但结果发现它也有同样的问题。

对使用其他模板引擎有什么建议吗?


当前回答

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

它应该允许更多的自动渲染,主要使用jquery选择器,更重要的是,它不需要把花哨的东西放进HTML。

其他回答

我目前正在使用一个多HTML模板框架。这个框架使得在DOM中导入模板化数据变得更加容易。还有很棒的MVC建模。

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

我使用jtemplates jquery插件,但性能真的很差。我切换到trimpath (http://code.google.com/p/trimpath/wiki/JavaScriptTemplates),它的性能要好得多。我没有发现IE7或FF有任何问题。

对于非常简单的工作,jquery-tmpl就足够了,但在某些情况下,它要求数据知道如何格式化自己(不好的事情!)

如果你正在寻找一个功能更全面的模板插件,我建议Orange-J。它的灵感来自Freemarker。它支持if, else,遍历对象和数组,内联javascript,包括模板中的模板,并具有出色的输出格式选项(maxlen, wordboundary, htmlentities等)。

哦,还有简单的语法。

jQuery-tmpl将在jQuery 1.5开始在jQuery核心:

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 Grid的依赖项。

http://blog.jquery.it/2011/04/16/official-plugins-a-change-in-the-roadmap/

只能做个傻瓜^^

// 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/。)