Добавление атрибутов через @
vitkarpov opened this issue · comments
Вот такой код работает, как ожидается:
<div>
@data-params = '...'
@class = '...'
</div>
Атрибуты будут добавлены.
Однако, если написать так:
<div>
<span>
"Hello, world!"
</span>
@data-params = '...'
@class = '...'
</div>
В таком случае атрибуты не будут добавлены для div
как в первом случае.
Это нормальное поведение?
Да, нормальное. Это из xslt пошло все.
Атрибуты приклеиваются к текущей открытой ноде, в которой еще не было никакого контента.
Если вывести строку или кусок xml, то все.
Ага, понял. Спасибо.
Однако, у нас тут не xml. Зачем нам такое ограничение?
Во-первых, таки xml. Результат наложения шаблонов это всегда well-formed xml.
Во-вторых, это техническое ограничение. Сейчас результат строится в виде строки. И прежде, чем выводить в эту строку что-то из содержимого тега, нужно этот тег полностью вывести. Что исключает последующее добавление туда атрибутов.
Альтернативой является строить виртуальное xml-дерево и потом его сериализовывать. Это в несколько раз медленнее. Так что так я делать не буду.