Возможно ли каким-либо образом взять элемент DOM из шаблона подчеркивания и использовать его в качестве другого шаблона?
Идея состоит в том, что моему приложению нужно отобразить документ, содержащий цикл с элементами и сводкой. Мне нужно иногда повторно отображать только сводку или несколько элементов, поэтому я не могу просто перерисовать весь документ.
Однако я бы хотел, чтобы пользователи приложений могли создавать собственные шаблоны для документа, и я думаю, что сохранить все в одном файле для документа упростит.
Я пытаюсь использовать что-то вроде этого:
<script type="text/template" id="document-template">
<div id="document">
<h1><%= name %></h1>
<ul class="items">
<% _.each(items, function(item) { %>
<li><%= item %></li>
<% }); %>
</ul>
<div id="summary">
<p>Total items: <%= totalitems %></p>
</div>
</div>
</script>
Теперь я могу легко сделать это var documentTemplate = _.template($('#document-template').html());
, чтобы превратить это в шаблон документа, но я хотел бы также превратить итоговую часть в шаблон и элемент списка в шаблон.
Могу ли я сделать что-то вроде этого:
var summaryTemplate = _.template($('#document-template #summary').html());
var itemTemplate = _.template($('#document-template .items li').html());
PS. Фактически я загружаю шаблон из внешнего файла с помощью jQuery $.get. Таким образом, я получу шаблон документа в одной большой строке. Оттуда я могу сделать только documentTemplate = _.template(loadedString);
.
Теперь, если бы я мог просто извлечь элемент #summary из строки, он должен работать. Но когда я пытаюсь преобразовать строку в элемент DOM (var domElement = $(loadedString)
)
(так что я мог бы сделать это: summaryTemplate = _.template($('#summary',domElement).html());
, он не будет работать, потому что подчеркивание больше не будет распознавать теги <% =% > .