Просмотр темы
Помогите исправить баг в небольшом javascript-шаблонизаторе - tempreites.js
|
|
Zaxap |
Опубликовано 21.07.2016 11:16
|
Элита Сообщений: 1090 Зарегистрирован: 05.09.2012 10:32 |
Здравствуйте. Искал удобные микро-шаблонизаторы на javascript, чтобы было все, что нужно, но ничего лишнего. Очень приглянулся Все бы ничего, но в нем есть один неприятный баг. Приведу пример (один из примеров от автора). my_example.html
Результатом выполнения будет следующий html-код (без учета <div id="main"></div>):
Все работает! Отлично! А что если... просто взять и добавить какой-нибудь class или id, например, class="my-li-class" к li (в my_example.html)? Я был немного удивлен, когда увидел это:
Что же произошло? Видимо, рендер "съел" все, что находилось внутри тегов с классом. То же самое случится, если добавить class="my-span-class" к span:
Все внутри этих тегов было съедено... Хотя, понаставь мы вокруг всего этого большое количество пустых div'ов, все будет работать - парадокс (не парадокс, а баг). Самое странное - то, что часть примеров автора работает вот так, опровергая результаты, приведенные в этих примерах. Сам же создатель сей замечательной штуки больше ее не поддерживает. А вот, собственно, и сам скрипт, немного оптимизированный (надеюсь ничего не испортил ненароком) мною. Но данный баг исправить так и не смог. tempreites.js Дорогие знатоки js, можете помочь с этим? Заранее спасибо! Зло не дремлет, а я добрый...
|
|
|
Deorchik |
Опубликовано 21.07.2016 12:09
|
Опытный пользователь Сообщений: 283 Зарегистрирован: 27.12.2012 10:30 |
Zaxap, Привет ! Бага никого там нету =))) все скажу как работает =)) Твой пример -- <script src="tempreites.js"></script> Добавил класс love в li - и внутри все убралось, верно? да .... на выходе получил : <div id="main"><ul id="theories"><li class="ssss"></li> Верно? =)) да теперь смотри как я делаю =)) добавлю класс love в li <div id="main"></div> в итоге получаю
все просто - классы указывать нужно и в конструкции запроса =))) надеюсь все понял =)) |
|
|
Zaxap |
Опубликовано 21.07.2016 12:31
|
Элита Сообщений: 1090 Зарегистрирован: 05.09.2012 10:32 |
Deorchik, да это как раз и баг, по-моему... Мне нравится, как данное сделано в Transparency, который, собственно, и вдохновил автора Tempreites написать свое творение. В этом плагине как раз все не сводится к повторению структурно передаваемыми данными "верстки". Это есть хорошо, ибо... зачем писать все по 2 раза? (мне поэтому и понравилась идея шаблонизатора: структура может быть в верстке, и нужно передать просто данные - потом меняй все в html, как хочешь, только class'ы или id оставляй, грубо говоря). В Transparency мои примеры прекрасно работают. Только вот в данном плагине много лишнего (вплоть до jquery), да и, по-моему, нет функции "compile", аналогичной Tempreites. Tempreites - облегченный Transparency, который к тому же работает, как по-мне, быстрее (миллисекундная оптимизация, угу)... Так что в tempreites.js это - баг... Как по-мне, это баг Если это - фича, то помогите мне ее исправить. Если все так, как вы говорите, Deorchik, то при том, как я записываю, внутри тех тегов не должно быть "пусто" - там должны быть просто строки без данных... А то, что они пропадают - это баг, не иначе)) Изменил(а) Zaxap, 21.07.2016 12:55 Зло не дремлет, а я добрый...
|
|
|
Deorchik |
Опубликовано 21.07.2016 15:18
|
Опытный пользователь Сообщений: 283 Зарегистрирован: 27.12.2012 10:30 |
Zaxap, не спорю - возможно это баг =))) дак к чему же тогда именно этот шаблонизатор ? если есть баги и разница в миллисекундах? думаю если его лечить - то тупо писать с нуля мне кажется он так построен - четкое следование по структуре ... Объединено 21.07.2016 16:09: https://habrahabr...st/219873/ Изменил(а) Deorchik, 21.07.2016 16:09 |
|
|
Zaxap |
Опубликовано 21.07.2016 16:36
|
Элита Сообщений: 1090 Зарегистрирован: 05.09.2012 10:32 |
Deorchik, читал эту статью:) Мне нравится именно Tempreites или Transparency (хотя второй и не удовлетворяет полностью мои потребности). Проблема в том, что я не знаю, как называются подобные шаблонизаторы и где их можно найти. Еще видел, Plates, но он тоже не подходит. --- --- --- --- --- --- --- --- --- --- --- --- Хм... взял 1 или 0.1 версию скрипта - все работает. Даже если задать класс к li или span, все ок. Остается понять, где именно баг в новой версии... tempreites.js, v0.1.0
В доказательство: https://jsfiddle..... Изменил(а) Zaxap, 23.07.2016 08:47 Зло не дремлет, а я добрый...
|
|
Поделиться этой темой | |
Социальные закладки: | |
URL: | |
BBcode: | |
HTML: |
Перейти на форум: |