Для большинства библиотек шаблонов javascript шаблонирование происходит в два этапа.
- Передать строку (обычно содержащую HTML) в функцию компиляции движка шаблонов. Это возвращает вам «шаблонную функцию», которую вы можете выполнить. Это должно происходить только один раз для каждого шаблона в течение срока службы вашего приложения.
- Визуализация шаблона в выводе (обычно HTML) путем вызова функции скомпилированного шаблона и предоставления «контекста» данных, которые будут доступны для шаблона. Это можно сделать несколько раз с разными контекстными данными для вывода другого HTML.
.
//Compile your template string into a function
//Happens 1 time only then you can cache the function
var templateFunction = _.template("<p>Your <%- part %> is so <%- description %></p>");
//Generate your output HTML with varying sets of data.
var html1 = templateFunction({part: "nose", description: "big"});
//html1 has "<p>Your nose is so big</p>";
var html2 = templateFunction({part: "cat", description: "fat"});
//html2 has "<p>Your cat is so fat</p>";
Это та же самая основная идея для шаблонов подчеркивания, JST, Jade и большинства других шаблонизаторов. «Контекстные данные» - это то, как ваш шаблон получает доступ к вашей модели. Если вы хотите, вы можете предоставить ему прямой доступ к базовой модели, предоставив такой контекст, как: {model: myModel};
. Тогда в вашем шаблоне вы можете сделать что-то вроде <%= model.get("displayName") %>
.