Цитата:
- template foo()
# script
var a = {}; /// Не будет ошибки т.к. мы используем расширенный синтаксис
Цитата:
|
Цитата:
|
Еще небольшой вопрос, если позволите.
< some создаем тег some - some ? простая директива? # some расширенная директива? Почему спрашиваю. Встала задача, которую пока не решил, и пропустил. В переменной приходит селектор, который должен раскрыться в тег Например span.some Сейчас использую вот так (класс вручную, а в переменной только класс)
< span (class = ${ @markup.spanClass })
{ @markup.spanText }
А вот так не получилось
< ${ @spanSelector }
{ @markup.spanText }
Тк на выходе получал <span.some>span text</span.some> :))
{tag ${ @spanSelector }}
Hello world
{/tag}
Результат тот же |
Цитата:
- tag some Даст такой же ответ. Сокращённые варианты есть лишь у некоторых директив и преследуют исключительно цель удобства написания Цитата:
- template foo() - var bla = 1 - bla /// 1 - bar = 2 /// создаст константу bar Цитата:
Цитата:
< span.${ @markup.spanClass }
И зачем взял в круглые скобки? Цитата:
< ${tagName}#${idName}.${className1}.${className2}
Интерполяция также работает и при ручном задание атрибутов
< span ${attr1} = ${attrVal1}
А также можно использовать интерполяцию с объектом:
- var attrs = { foo: 1, bar: 2 }
< .foo ${attrs}
|
Спасибо за подробное объяснение.
Т.е раскрыть строку span.some в тег с классом не выйдет? |
Цитата:
- template foo(selector)
/// Сокращение для - var
: chunks = selector.split('.')
< ${ chunks[0] }.${ chunks[1] }
Или более универсальный вариант (если классов много)
- template foo(selector)
: chunks = selector.split('.')
< ${ chunks[0] } сlass = ${ chunks.slice(1).join(' ') }
|
И в догонку :)
Почему?
< span ${attr1} = ${attrVal1}
Но
< span
{attr1} = {attrVal1}
|
Цитата:
< .foo & bla = 1 | baz = 2 . Если использовать классический синтаксис, то это не нужно.
{< .foo
bla = 1 |
baz = 2
}{/}
|
А стоп, не понял вопрос сначала. Ты спрашиваешь почему ${} и {}?
Потому что ${} - это синтаксис интерполяции, т.е. мы внутрь инструкции вставляем живые значения, а {} - это просто декларация директивы
< ${'foo'}
{a} - {b}
Тоже самое на классическом синтаксисе
{< ${'foo'}}
{a} - {b}
{/}
А разный синтаксис по 2-м причинам: 1) Визуальное отличие, чтобы не запутаться 2) Чтобы не было конфликтов с использованием {} блоков внутри директивы, например
/// <div class="foo" bla="{a: 1, b: 2}"></div>
< .foo bla = {a: 1, b: 2}
|
Понял. спасибо!
Хорошего дня |
| Часовой пояс GMT +3, время: 05:25. |