Skip to content

Instantly share code, notes, and snippets.

@calacitizen
Last active April 22, 2016 11:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save calacitizen/4c5fe452f5d9ceb4501ae0fb2afc4f20 to your computer and use it in GitHub Desktop.
Save calacitizen/4c5fe452f5d9ceb4501ae0fb2afc4f20 to your computer and use it in GitHub Desktop.
Спецификация

#Шаблонизатор. Спецификация.

###Базовый синтаксис

  1. Типичный вид шаблона

    		<div class=”class1 class2 {{someClass}}”>
    			<span class=”{{someClass}}”>
                {{ content|trim }}
             </span>
        </div>
  2. В шаблоне существуют только свойства переданного объекта при генерации шаблона.

  3. Выражения. Для вывода значений свойств переданного объекта или результата выражения используются двойные скобки:

       {{ … }}
  4. Переменные. Конструкция {{ name }} в шаблоне означает, что будет производится поиск ключа "name" в текущем контексте шаблона. Если в текущем контексте ключ найден не будет, поиск будет производится в родительском контексте (если он есть). Если по достижении конечного уровня контекстов ключ name найден не был, значение не будет выведено. Все переменные и значения выражений будут экранированы по умолчанию. Для отмены действий следует вызывать декоратор unescape {{name|unescape}}

  5. Атрибуты. В случае если результатом выражения является одно из этих значений: 'undefined', 'null' атрибут тега выведен не будет.

    Шаблон:

    someClass = undefined;
    content = 'Hi!'
       <div class="{{someClass}}">
          {{content}}
       </div>

    Результат:

       <div>
          Hi!
       </div>
  6. Выражения могут быть в любой части шаблона. В описательной части тега, кроме содержимого атрибутов, использование выражений не предусмотрено.

    Верно

       <div class="{{someClass}}">
          {{content}}
       </div>

    Неверно

       <div {{someClass}}>
          {{content}}
       </div>

###Выражения

В шаблонизаторе можно выполнять определённый набор выражений: создание объектов, массивов, сложение, вычитание, деление, умножение и т.д.

  1. Числа. Результатом выполнения выражения является число.

       {{ 24 }} <!-- Результат: 24 -->

    Сложение:

       {{ 24 + 16 }} <!-- Результат: 40 -->

    Вычитание:

       {{ 24 - 16 }} <!-- Результат: 8 -->

    Деление:

       {{ 24 % 6 }} <!-- Результат: 4 -->

    Умножение:

       {{ 24 * 2 }} <!-- Результат: 48 -->
  2. Строки. Результатом выполнения выражения является строка.

    Вывод Строк

 {{ 'string' }} <!-- Результат: string  -->
 {{ "string" }} <!-- string -->

Конкатенация:

 {{ 'string' + ' ' + string }} <!-- Результат: string string -->
  1. Переменные. В шаблонизаторе можно выводить любые переменные находящиеся в контексте текущего или родительского шаблона.

       string = 'some string';
       {{string}} <!-- Результат: some string -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment