Это простой пример, основанный на коде из документации API jquery-tmpl. Я хотел бы использовать вложенный тег {{tmpl}} — здесь «titleTemplate». Я хотел бы использовать различные вспомогательные функции как во внешнем шаблоне, так и во вложенном шаблоне. В этом примере есть одна тривиальная вспомогательная функция под названием «embolden», которая передается при начальном вызове tmpl().
Следующие работы. Я могу ободрить данные Name внутри titleTemplate. Но это кажется грязным. Есть ли более чистый способ сделать это? Поскольку formatHelpers передается в исходный вызов tmpl(), действительно ли необходимо также передавать его в тег {{tmpl}}?
<script id="movieTemplate" type="text/x-jquery-tmpl">
{{tmpl($item.data, formatHelpers) "#titleTemplate"}}
<tr class="detail"><td>Director: ${$item.embolden(Director)}</td></tr>
</script>
<script id="titleTemplate" type="text/x-jquery-tmpl">
<tr class="title"><td>${$item.embolden($item.data.Name)}</td></tr>
</script>
<table><tbody id="movieList"></tbody></table>
<script>
var formatHelpers = {
embolden: function(i) {
return "*" + i + "*";
}
};
var movies = [
{ Name: "The Red Violin", Director: "François Girard" },
{ Name: "Eyes Wide Shut", Director: "Stanley Kubrick" },
{ Name: "The Inheritance", Director: "Mauro Bolognini" }
];
/* Render the template with the movies data */
$( "#movieTemplate").tmpl(movies, formatHelpers).appendTo("#movieList");
</script>