Моя общая цель - сделать партиалы (таких как nav, footer, article и т. Д. c.) И хранить их в отдельных файлах и вызывать их там, где они нужны.
Я не могу понять как реализовать частичное несмотря на ссылки на несколько учебных пособий. Во включенном jsfiddle вы можете видеть, что я успешно создал шаблон, передал ему объект данных, а затем добавил его обратно в контейнер, содержащий шаблон. Насколько я понимаю, вы можете зарегистрировать html как частичное, а затем вызвать его. Я понимаю, что это наивно, потому что нет способа узнать, на какие данные следует ссылаться, когда вы его называете (верно?).
https://jsfiddle.net/c6m8btrv/1/
Я также пытался обернуть {{> FavoritesPartial}} тегом, но в браузере ничего не отображалось. Неясно, должен ли частичный вызов быть в теге скрипта.
Вот мой html:
<head>
<title>Partial Test</title>
<meta charset="utf-8">
</head>
<body>
<h1>This is from the Favorites Partial:</h1>
<script id="favorites-partial" type="text/x-handlebars-template">
{{> favoritesPartial}}
</script>
<h1>This is from the Favorites Template:</h1>
<div class="favorites-container">
<script id="favorites-template" type="text/x-handlebars-template">
<h3>Favorites</h3>
<ul>
<li>Fruit: {{fruit}}</li>
<li>Sport: {{sport}}</li>
<li>Music: {{music}}</li>
</ul>
</script>
</div>
<!-- Call jquery -->
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<!-- Call Handlebars -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.3/handlebars.js"></script>
<!-- Call script.js -->
<script src="script.js"></script>
Вот скрипт. js:
var favorites = {
"fruit": "mango",
"sport": "golf",
"music": "Rock"
}
//Save favorites template and register as partial
var favoritesTemplate = $("#favorites-template").html();
var compiledFavoritesTemplate = Handlebars.compile(favoritesTemplate);
Handlebars.registerPartial("favoritesPartial", favoritesTemplate);
$(document).ready(function () {
//-----------------
//Favorite Template
//-----------------
var favoritesHTML = compiledFavoritesTemplate(favorites)
$(".favorites-container").append(favoritesHTML);
$(".favorites-partial-output").append(favoritesHTML);
});
РЕДАКТИРОВАТЬ: jsfiddle не отображает рабочий шаблон правильно (должен загрузить руль. js ресурс - не уверен, почему он не спасен существами).