随着移动互联网的发展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 } }
最新评论