Подскажите, пожалуйста, как добиться того, чтобы функция, из кода renderTemplate корректно изменяла шаблон?
Она принимает шаблон (html) и массив объектов. В объектах key, как раз значения "заглушек" в шаблоне, которые надо заменить на значения value
Работает некорректно. Должно быть 2 блока <li>. А получается 6
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<style>
</style>
<ul id="context"></ul>
<script>
var personOne={
fullname:'John',
gender:'Male',
email:'John@gmail.com'
}
var personTwo={
fullname:'Boris',
gender:'Male',
email:'Boris@gmail.com'
}
var valueHash=[personOne,personTwo];
var listItemTpl="<li>fullname</li><li>gender</li><li>email</li><li><button class='closeInfo'>Find more</button></li></br>";
var string='';
function renderTemplate (tpl, valueHash) {
valueHash.forEach(function(item) {
for (var key in item) {
string+=tpl.replace(key, item[key]);
}
});
return string;
}
renderTemplate(listItemTpl,valueHash);
document.getElementById('context').innerHTML=string;
</script>
</body>
</html>