Подскажите, пожалуйста, как в мире javascript вообще, и в jQuery UI factory в частности, принято хранить HTML-шаблоны? В стандартных коробочных виджетах jQuery UI шаблонов как таковых практически нет, они размазаны по коду .addClass'ами и .appendTo.
Однако, в моём случае html-скелет получился довольно увесистый, и я не знаю как правильно с ним поступить. Чтобы и удобно, и работало.
Как у меняСейчас я пришел к такому решению, что и код, и шаблон виджета лежат в одном отдельном .html файле, в котором содержится фабрика виджета, код её инициализирующий и код, «вешающий» её на первый потомок документа-шаблона (т.е. на div #widgetContainer).
widget.html<div id="#widgetContainer"><br>
<!-- HTML-шаблон тут --><br>
</div><br>
<script><br>
$.widget( "my.superWidget", { ... // Фабрика виджета<br>
...<br>
$("#widgetContainer").superWidget(); // Инициализация<br>
</script><br>
main.html...<br>
<body><br>
...<br>
<div id="widgetPlaceholder"/><br>
...<br>
</body><br>
<script><br>
$(function() {<br>
...<br>
$("#widgetPlacehodler").load("widget.html"); // Виджет в одну строку.<br>
...<br>
</script><br>
...<br>
Дико удобно, потому что виджет вставляется на страницу
одной единственной строкой, безо всяких инклюдов:
$("#widgetPlacehodler").load("widget.html");<br>
и всё работает.
Проблемы две:
1. Вызов асинхронный.
2. Виджетом становится не #widgetPlacehodler, а его содержимое — #widgetContainer.
Может наоборот?По идее надо бы наоборот: положить html-шаблон в js и подключать на страницу именно js через ‹script›.
Это синхронно, логично и всего на одну строку длиннее.
Но я что-то не разобрался с ходу как хранить куски html в js, не нарезая их в салат кавычками.
Всё же, как правильно?