Документація для створення шаблонів є частковою, я дивився джерело.
Функція _.template має 3 аргументи:
- Текстовий рядок : рядок шаблону
- Дані об'єкта : дані оцінки
- Параметри об'єкта : локальні налаштування, _.templateSettings - це об'єкт глобальних налаштувань
Якщо дані (або нульові) не вказано, функція візуалізації повернеться. Він має 1 аргумент:
- Дані об’єкта : те саме, що дані вище
У налаштуваннях є 3 схеми регулярних виразів та 1 статичний параметр:
- RegExp оцінює : "<% code%>" у рядку шаблону
- Інтерполювати RegExp : "<% = code%>" у рядку шаблону
- RegExp escape : "<% - код%>"
- Змінна струна : необов'язково, ім'я параметра даних у рядку шаблону
Код у розділі оцінювання буде просто оцінений. Ви можете додати рядок із цього розділу командою __p + = "mystring" до оцінюваного шаблону, але це не рекомендується (не є частиною інтерфейсу шаблону), замість цього використовуйте розділ інтерполяту. Цей тип розділу призначений для додавання блоків, наприклад, якщо або до шаблону.
Результат коду в розділі інтерполяту буде доданий до оцінюваного шаблону. Якщо нуль повернуто назад, пустий рядок буде додано.
Втеча розділ вислизає HTML з _.escape на повернутому значенні цього коду. Таким чином, він схожий на _.escape (код) в інтерполяційному розділі, але він уникає \ \ символів пробілу, як \ n, перш ніж передавати код _.escape . Я не знаю, чому це важливо, він знаходиться в коді, але він добре працює з інтерполятом і _.escape - що не уникає символів пробілу - теж.
За замовчуванням параметр даних передається оператором з (data) {...} , але цей вид оцінки набагато повільніше, ніж оцінювання з названою змінною. Так називаючи дані з перемінним параметром що - щось хороше ...
Наприклад:
var html = _.template(
"<pre>The \"<% __p+=_.escape(o.text) %>\" is the same<br />" +
"as the \"<%= _.escape(o.text) %>\" and the same<br />" +
"as the \"<%- o.text %>\"</pre>",
{
text: "<b>some text</b> and \n it's a line break"
},
{
variable: "o"
}
);
$("body").html(html);
результати
The "<b>some text</b> and
it's a line break" is the same
as the "<b>some text</b> and
it's a line break" and the same
as the "<b>some text</b> and
it's a line break"
Тут ви можете знайти більше прикладів використання шаблону та зміни параметрів за замовчуванням:
http://underscorejs.org/#template
За допомогою завантаження шаблону у вас є багато варіантів, але в кінці ви завжди повинні перетворити шаблон у рядок. Ви можете дати його в якості звичайної рядки , як в прикладі вище, або ви можете завантажити його з тега сценарію, і використовувати .html () функція JQuery, або ви можете завантажити його з окремого файлу з TPL плагін з require.js .
Ще один варіант побудови дерева купола з лаконічним замість шаблону.