随着移动互联网的发展APP站点增加,ajax数据交互变得频繁起来,许多javascript 模板终于有了用武之地。
看过一些js模板引擎,引入很多语法,解析,使得模板字符串看上去更漂亮,更接近UI,去程序化是他们的目的。
两年前自己也写了一个js template函数在项目中使用,今天精简了一下语法,增加error report功能方便了模板解析出错时定位问题。
本着开源的精神,我把它放到了github上
https://github.com/fushanlang/js-template
以及 oschina开源库里
http://git.oschina.net/fushanlang/javascript-template
function js_template(t, v) {
var a = "";
var echo = function (b) {
a += b
};
var z = window.AJ;
window.AJ = z = !z ? [] : z;
var s = "_{" + Math.random() + "}_";
var p = t.replace(/\n|\r|\t/g, "");
var j = [];
p = p.replace(/(.*?)<\/js>/g, function ($0, $1) {
j.push($1);
return s
});
var txt = p.split(s);
p = "";
for (var i = 0; i < j.length; ++i) {
p += "echo(txt[" + i + "]);";
p += j[i]
}
;
p += "echo(txt[" + j.length + "]);";
try {
if (v) {
for (var i in v) {
eval("var " + i + " =v[i];")
}
}
;
eval(p)
} catch (error) {
z.push([error, p, t])
} finally {
return a
}
}
最新评论