用json数据替换模板中的标志返回一个String。
var
Render
=
...
{
rend:function(template, V)...{
V=V.constructor==Array?V:[V];
var r="";
for(var i in V)...{
r+=this.rendElement(template, V[i]);
}
return r;
},
rendElement:function(template,V)...{
var TagB="/$/{",TagE="/}";
var reg=new RegExp(TagB+"([^/}]*)"+TagE,"g");
return template.replace(reg,function(m,i)...{
return eval("V."+i);
});
}
}
rend:function(template, V)...{
V=V.constructor==Array?V:[V];
var r="";
for(var i in V)...{
r+=this.rendElement(template, V[i]);
}
return r;
},
rendElement:function(template,V)...{
var TagB="/$/{",TagE="/}";
var reg=new RegExp(TagB+"([^/}]*)"+TagE,"g");
return template.replace(reg,function(m,i)...{
return eval("V."+i);
});
}
}
说明:
Render.rend()为针对数组与对象的通用调用方法。template为模板,V为一个json格式的对象或者数组
数据格式: json
模板标志:${}
代码示例:
function
ex()
...
{
var a="arg1:${A1},arg2:${ A2 },arg3:${ A1}";
alert(Render.rend(a, [...{"A1":"XXX","A2":"YYY"},...{"A1":"XXX22","A2":"YYY22"}]));
}
var a="arg1:${A1},arg2:${ A2 },arg3:${ A1}";
alert(Render.rend(a, [...{"A1":"XXX","A2":"YYY"},...{"A1":"XXX22","A2":"YYY22"}]));
}