我一直在寻找JavaScript模板库,如dust.js和其他更广泛的库,如canJSJavaScript模板,为什么这么棒?
我在哪里工作,我们在客户端执行了将近99%的任何应用程序/站点。目前,我只是建立html字符串,注入dom,监听点击/动作,做Ajax,从结果中构建更多的html字符串并注入dom等。
如果你把这个简单的example。
//stringbuilder
function StringBuilder(e){this.strings=new Array("");this.append(e)}StringBuilder.prototype.append=function(e){if(e){this.strings.push(e)}};StringBuilder.prototype.clear=function(){this.strings.length=1};StringBuilder.prototype.toString=function(){return this.strings.join("")}
var data = {
fname: "Joe",
lname: "Doe",
occupation: "Developer",
things: ["some", "list", "of", "things"]
}
var sb = new StringBuilder();
sb.append("<h1>" + data.fname + " " + data.lname + "</h1>");
sb.append("<p>Occupation: " + data.occupation + "</p>");
sb.append("<h3>A list of things</h3>");
sb.append("<ul>");
for (var i = 0; i < data.things.length; i++) {
sb.append("<li>" + data.things[i] + "</li>");
}
sb.append("</ul>");
$("#output").html(sb.toString());
以什么方式可以通过模板改进?从我所看到的,我将不得不适应一种特殊的模板语法,这种语法比上面的语句更容易阅读或维护。怎么样复杂的布局,或者你有递归的场景(列表内的列表不知道它可能会有多少级别)。我觉得模板语法/引擎在某些情况下是我的限制因素。
我想完全可以将该HTML从JS中完全拉出来,但是可以说使用带有HTML内部模板语法的脚本标记不在表格中,我并不特别希望将模板作为我需要的外部文件执行额外的读取请求。
请教育我!
我想说EJS或玉是你最好的选择。他们有客户端和服务器支持。 – elclanrs
你在做什么已经是一种模板形式。 – Christophe