barkalov
@barkalov

JQuery UI (widget factory). Код и разметка в одном файле. Best practice?

Подскажите, пожалуйста, как в мире javascript вообще, и в jQuery UI factory в частности, принято хранить HTML-шаблоны? В стандартных коробочных виджетах jQuery UI шаблонов как таковых практически нет, они размазаны по коду .addClass'ами и .appendTo.


Однако, в моём случае html-скелет получился довольно увесистый, и я не знаю как правильно с ним поступить. Чтобы и удобно, и работало.

Как у меняСейчас я пришел к такому решению, что и код, и шаблон виджета лежат в одном отдельном .html файле, в котором содержится фабрика виджета, код её инициализирующий и код, «вешающий» её на первый потомок документа-шаблона (т.е. на div #widgetContainer).
widget.html
<div id="#widgetContainer">
<!-- HTML-шаблон тут -->
</div>
<script>
$.widget( "my.superWidget", { ... // Фабрика виджета
...
$("#widgetContainer").superWidget(); // Инициализация
</script>

main.html
...
<body>
...
<div id="widgetPlaceholder"/>
...
</body>
<script>
$(function() {
...
$("#widgetPlacehodler").load("widget.html"); // Виджет в одну строку.
...
</script>
...



Дико удобно, потому что виджет вставляется на страницу

одной единственной строкой, безо всяких инклюдов:$("#widgetPlacehodler").load("widget.html"); и всё работает.


Проблемы две:

1. Вызов асинхронный.

2. Виджетом становится не #widgetPlacehodler, а его содержимое — #widgetContainer.

Может наоборот?По идее надо бы наоборот: положить html-шаблон в js и подключать на страницу именно js через ‹script›.

Это синхронно, логично и всего на одну строку длиннее.

Но я что-то не разобрался с ходу как хранить куски html в js, не нарезая их в салат кавычками.


Всё же, как правильно?
  • Вопрос задан
  • 4598 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы