改进的模板替换
之前美丽湾项目是用赢家写的替换方法,替换数据时,无法深度遍历,这里修改一下
方法:
1 function tempExt(h, data) { 2 return h.replace(/\{(.*?)\}/g, function (str, m) { 3 var arrM = m.split('.'), 4 t = data[arrM.shift()]; 5 for (var i = 0, _len = arrM.length; i < _len; i++) { 6 t = t[arrM[i]]; 7 } 8 return t === undefined || t === null ? '' : t; 9 }); 10 }
测试数据:
var testData = { d1: '1', d2: '2', d3: { id: { u: 1024 } } } var htmlTemp = '<p><span>{d1}</span><span>{d2}</span><span>{d3.id.u}</span></p>';
调用:
tempExt(htmlTemp, testData);
就这样啦,当然跟别人的模板引擎差太多了,无法实现逻辑运行,迭代这些操作,不过小范围的单纯替换数据还是可以用上的。
————————————一些题外话的可悲分割线——————————————
唉,今天离职了,心情有些低落。和大家共事那么久了,最后还是天各一方。
很多想说的话到最后还是没能说出口。
不管怎么样,且行且珍惜吧。