Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| font-end:handlebarsjs [2016/03/05 16:50] – создано mirocow | font-end:handlebarsjs [Дата неизвестна] (текущий) – внешнее изменение (Дата неизвестна) 127.0.0.1 | ||
|---|---|---|---|
| Строка 4: | Строка 4: | ||
| * https:// | * https:// | ||
| - | * | + | * https:// |
| + | * https:// | ||
| + | ===== Примеры использования ===== | ||
| + | |||
| + | <code html> | ||
| + | // 1) ПРИМЕР ИСПОЛЬЗОВАНИЯ | ||
| + | // html | ||
| + | <script id=" | ||
| + | < | ||
| + | {{#this}} | ||
| + | < | ||
| + | {{/this}} | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | // json | ||
| + | resData | ||
| + | |||
| + | // js | ||
| + | var source | ||
| + | var template = Handlebars.compile(source); | ||
| + | $(' | ||
| + | |||
| + | |||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // 2) ПРИМЕР ХЭЛПЕРА | ||
| + | // html | ||
| + | < | ||
| + | |||
| + | // js | ||
| + | Handlebars.registerHelper(' | ||
| + | if(lastInputDate) { | ||
| + | | ||
| + | } else { | ||
| + | return ''; | ||
| + | } | ||
| + | }); | ||
| + | |||
| + | |||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // 3) Возвращаем HTML код | ||
| + | // js | ||
| + | Handlebars.registerHelper(' | ||
| + | return new Handlebars.SafeString( | ||
| + | "<a href='" | ||
| + | ); | ||
| + | }); | ||
| + | |||
| + | |||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // 4) IF (если - параметр) | ||
| + | // html | ||
| + | {{# | ||
| + | < | ||
| + | | ||
| + | < | ||
| + | | ||
| + | |||
| + | // js | ||
| + | Handlebars.registerHelper(' | ||
| + | if (item){ // если parametr = true | ||
| + | | ||
| + | } | ||
| + | else{ | ||
| + | | ||
| + | } | ||
| + | }); | ||
| + | |||
| + | |||
| + | |||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // 5) Выводим пару: ключ - значение | ||
| + | // html | ||
| + | <script id=" | ||
| + | {{#eachkeys data}} | ||
| + | < | ||
| + | {{/ | ||
| + | </ | ||
| + | <div id=" | ||
| + | </ | ||
| + | |||
| + | // js | ||
| + | Handlebars.registerHelper(' | ||
| + | var fn = options.fn, inverse = options.inverse; | ||
| + | var ret = ""; | ||
| + | |||
| + | var empty = true; | ||
| + | for (key in context) { empty = false; break; } | ||
| + | |||
| + | if (!empty) { | ||
| + | for (key in context) { | ||
| + | ret = ret + fn({ ' | ||
| + | } | ||
| + | } else { | ||
| + | ret = inverse(this); | ||
| + | } | ||
| + | return ret; | ||
| + | }); | ||
| + | |||
| + | $(function() { | ||
| + | var data = {" | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | var source | ||
| + | var template = Handlebars.compile(source); | ||
| + | $('# | ||
| + | }); | ||
| + | |||
| + | // result | ||
| + | // interval - 2012-01-21 | ||
| + | // advertiser - Advertisers 1 | ||
| + | // offer - Life Insurance | ||
| + | // cost_type - CPA | ||
| + | // revenue_type - CPA | ||
| + | |||
| + | |||
| + | |||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // 6) Первый элемент массива в шаблоне | ||
| + | // json | ||
| + | { | ||
| + | people: [ | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | ] | ||
| + | } | ||
| + | |||
| + | // html | ||
| + | <ul id=" | ||
| + | {{people.1.name}} | ||
| + | </ul> | ||
| + | |||
| + | |||
| + | |||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // 7) Комментарии | ||
| + | {{! комментарии тут }} | ||
| + | |||
| + | |||
| + | |||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // 8) Как вставлять html из json | ||
| + | // json | ||
| + | { body: "< | ||
| + | // html | ||
| + | {{{body}}} | ||
| + | |||
| + | |||
| + | |||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // 9) With | ||
| + | // Мы можем смещать контектст конкретной секции шаблона | ||
| + | // html | ||
| + | <div class=" | ||
| + | < | ||
| + | {{#with author}} | ||
| + | < | ||
| + | {{/with}} | ||
| + | </ | ||
| + | |||
| + | // JSON | ||
| + | { | ||
| + | title: "My first post!", | ||
| + | author: { | ||
| + | firstName: " | ||
| + | lastName: " | ||
| + | } | ||
| + | } | ||
| + | |||
| + | // Результат: | ||
| + | <div class=" | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // 10) each | ||
| + | // html | ||
| + | <ul class=" | ||
| + | {{#each people}} | ||
| + | < | ||
| + | {{/each}} | ||
| + | </ul> | ||
| + | |||
| + | // JSON | ||
| + | { | ||
| + | people: [ | ||
| + | " | ||
| + | "Alan Johnson", | ||
| + | " | ||
| + | ] | ||
| + | } | ||
| + | |||
| + | // RESULT | ||
| + | <ul class=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ul> | ||
| + | |||
| + | |||
| + | |||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // 11) IF | ||
| + | <div class=" | ||
| + | {{#if author}} | ||
| + | < | ||
| + | {{else}} | ||
| + | < | ||
| + | {{/if}} | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // 12) unless - противоположность IF | ||
| + | <div class=" | ||
| + | {{#unless license}} | ||
| + | <h3 class=" | ||
| + | {{/unless}} | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // 13) Пути | ||
| + | // Перемещаться можно как по JSON: | ||
| + | author.name - глубже | ||
| + | ../ - вернутся в родительскую область (можно и глубже ../../../) | ||
| + | |||
| + | |||
| + | |||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // -------------------------------------------------------------------------------------- | ||
| + | // 14) *связка хэлпера с each this | ||
| + | // html | ||
| + | <ul> | ||
| + | {{#each items}} | ||
| + | < | ||
| + | {{/each}} | ||
| + | </ul> | ||
| + | |||
| + | // JSON | ||
| + | var context = { items: [ | ||
| + | {name: " | ||
| + | {name: " | ||
| + | {name: " | ||
| + | |||
| + | // JAVASCRIPT | ||
| + | Handlebars.registerHelper(' | ||
| + | return new Handlebars.SafeString( | ||
| + | "< | ||
| + | ); | ||
| + | }); | ||
| + | |||
| + | // РЕЗУЛЬТАТ | ||
| + | <ul> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ul> | ||
| + | |||
| + | </ | ||
| ===== Статьи / Ссылки ===== | ===== Статьи / Ссылки ===== | ||
| Строка 12: | Строка 292: | ||
| * http:// | * http:// | ||
| * http:// | * http:// | ||
| + | * [[http:// | ||