深度模板

项目中返回的json数据有深层次的数据要输出

如:

data = [{
		status : "success",
		data : {
			name : "xiaomi",
			info : {
				msg : "成功",
				code : "100"
			}
		}
	}, {
		status : "error",
		data : {
			name : "xiaoH",
			info : {
				msg : "失败",
				code : "200"
			}
		}
	}, {
		status : "success",
		data : {
			name : "大米",
			info : {
				msg : "成功",
				code : "100"
			}
		}
	}
];

  

模板:

<tr><td>{{status}}</td><td>{{data.name}}</td><td>{{data.info.msg}}</td></tr>

组合成:

代码:

function tmpl2html(str, arrs) {
	var REG = /{{[0-9a-zA-Z_.]+}}/g,
	html = '';
	for (var j = 0, arrsLen = arrs.length; j < arrsLen; j++) {
		html += str.replace(REG, function (key) {
			key = key.substr(2, key.length - 4);
			var keyArrs = key.split("."),
			len = keyArrs.length,
			tempObj = arrs[j];
			for (var i = 0; i < len; i++) {
				tempObj = tempObj[keyArrs[i]];
			}
			return typeof tempObj == "string" ? tempObj : "";
		});
	}
	return html;
}

demo下载

原文地址:https://www.cnblogs.com/qd4world/p/tmpl.html