Вы хотите, чтобы "show" был в хэше для правильной итерации:
var shows={"shows":[
{"title":"Strawberry Shortcake","description":"A show about a cake","video":"none","category":"chilren"},
{"title":"Vanilla Ice","description":"A show about a ice","video":"none","category":"adult"}
]};
var template="{{#shows}}{{.}}{{/shows}}";
var html=Mustache.render(template,shows);
document.write(html);
Это даст желаемый эффект создания вашего шаблона несколько раз.
ОБНОВЛЕНИЕ
К вашему вопросу о Lambdas.Я только что посмотрел это в руководстве .Я думаю, что это охватывает то, о чем вы спрашивали:
Когда значение является вызываемым объектом, таким как функция или лямбда, объект будет вызван и передан блоку текста.Переданный текст является буквенным блоком, не обработанным.{{tags}} не будет расширен - лямбда должна делать это сама.Таким образом, вы можете реализовать фильтры или кэширование.
Шаблон:
{{#wrapped}}
{{name}} is awesome.
{{/wrapped}}
Хеш:
{
"name": "Willy",
"wrapped": function() {
return function(text) {
return "<b>" + render(text) + "</b>"
}
}
}