改进的模板替换

之前美丽湾项目是用赢家写的替换方法,替换数据时,无法深度遍历,这里修改一下

方法:

 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);

就这样啦,当然跟别人的模板引擎差太多了,无法实现逻辑运行,迭代这些操作,不过小范围的单纯替换数据还是可以用上的。

————————————一些题外话的可悲分割线——————————————

唉,今天离职了,心情有些低落。和大家共事那么久了,最后还是天各一方。

很多想说的话到最后还是没能说出口。

不管怎么样,且行且珍惜吧。

 

 

 

 

 

 

 

 

posted @ 2014-06-07 13:36  卡布其诺猫  阅读(169)  评论(0编辑  收藏  举报