Создание JQuery TMPL без большого количества дополнительных тегов сценария - PullRequest
3 голосов
/ 27 октября 2010

Я читал о шаблонном плагине jQuery http://api.jquery.com/tmpl/ как средство привязки данных к разметке.Кажется, что все примеры показывают, что вы определяете шаблон в сценарии нового тега сценария.На самом деле я бы предпочел не загромождать мой HTML <head> всеми этими тегами сценария.

Есть ли лучший способ организовать это?Может быть, с папкой шаблонов, полной скриптов, которые загружаются динамически?

Ответы [ 2 ]

2 голосов
/ 27 октября 2010

Тебе не обязательно это делать.Вы можете (например) сохранить свои шаблоны в файле .js (вроде как каталог сообщений):

// this is a file full of templates
var SITE_TEMPLATES = {
  ERROR_1: 'This is an error template: the error is ${error.msg}',
  WHATEVER: 'I cannot make this stuff up but you get the ${idea}'
};

Извлеките его, и затем вы сможете использовать шаблоны через

$('#someplace').append($.tmpl(SITE_TEMPLATES.ERROR_1, { error: { msg: "hello world" }}));

Другими словами, $.tmpl() позволяет передавать тело шаблона в качестве первого параметра, и он может поступать из любого места.

В качестве альтернативы, потому что записывать длинные шаблоны в виде строковых констант Javascript немного грязноВы можете собрать кучу текстовых тегов <script> в один статический HTML-файл.Затем вы можете AJAX это и бросить в скрытый <div> или что-то еще.Таким образом, вы все равно сможете получить преимущество от кэширования, и вам будет проще поддерживать шаблоны.

Конечно, вы можете поддерживать шаблоны отдельно как отдельные файлы и склеивать их вместе на сайте.время сборки по любой схеме упаковки.

2 голосов
/ 27 октября 2010

Вы можете хранить свои шаблоны во внешних файлах (и затем извлекать их через Ajax, например).

Цитата из http://api.jquery.com/jQuery.template/

"... для удаленных шаблонов вы можете получить разметку шаблона в виде строки, используя любой вызов AJAX, или вы можете просто использовать статический блок сценария, указывающий на файл js, который определяет строку. jQuery.template для компиляции шаблона из строки и перехода оттуда к визуализации с использованием jQuery.tmpl "

...