推荐的2012年jQuery模板?

mpe*_*pen 55 html jquery templates json

jQuery模板已经被弃用了一段时间了.

我有一些JavaScript对象形式的数据,我想格式化为HTML并附加到DOM.这些天最好的办法是什么?

  1. 我应该建立一个HTML字符串吗?
  2. 我应该通过jQuery创建元素$('<li>',{id:'my-'+Id}).append($('<span>').text(myText))吗?
  3. 是否有替代或成熟的jQuery模板替代品?

sac*_*een 104

这就是我在项目中的表现:

在HTML中定义模板:

<script type="text/template" id="cardTemplate">
<div>
    <a href="{0}">{1}</a>
</div>
</script>
Run Code Online (Sandbox Code Playgroud)

使用string.format替换变量:

var cardTemplate = $("#cardTemplate").html();
var template = cardTemplate.format("http://example.com", "Link Title");
$("#container").append(template);
Run Code Online (Sandbox Code Playgroud)

string.format:

String.prototype.format = function() {
  var args = arguments;
  return this.replace(/{(\d+)}/g, function(match, number) { 
    return typeof args[number] != 'undefined'
      ? args[number]
      : match
    ;
  });
};
Run Code Online (Sandbox Code Playgroud)

非常简单,您甚至可以组合模板.

  • 如何在必要时逃避HTML?在你的例子中,如果`{0}`包含双引号,你就会爆炸你的HTML. (6认同)
  • @Mark你可以调用`escape()`.如果我需要做的不仅仅是一些小模板,我肯定会寻找更强大的东西.我只是把它放在这里作为一个可能有用的东西的例子,就像它对我来说一样. (3认同)

Ant*_*una 10

你一定要试试Handlebars和/或Mustache

我倾向于使用Handlebars,但语法非常相似.


Joe*_*Joe 9

Mustache.js非常适合模板化.

https://github.com/janl/mustache.js


Cha*_*own 7

模板一直比尝试手动解析JSON容易得多.由于我做出了贡献,我偏爱json2html,因为它不需要编译模板,只使用JSON和JavaScript.

http://json2html.com