Создание шаблонов JQuery для повторного использования - PullRequest
2 голосов
/ 09 августа 2011

Я хочу создать шаблон (ы) jQuery, который будет использоваться во всем проекте. Я бы предпочел поместить шаблоны в отдельный файл или файлы и скомпилировать их при запуске проекта, используя функцию template .

Я не хочу иметь шаблоны в разметке, в тегах скрипта. Возможно ли это и как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 06 сентября 2011

Шаблоны просто используются как строки, поэтому вам даже не нужно вводить скрипты.Просто передайте строку прямо в jQuery.template.Настроив то, что предложил @abernier, вы можете сделать что-то вроде следующего.Я предполагаю, что вы называете файлы с тем же именем, что и имя шаблона, который вы хотите использовать, и сохраняете их в TMPLPATH.

    $.loadTmpl = function (name) {
        return $.get(TMPLPATH + name + ".tmpl").success(function (content){
            $.template(name, content);
        });
    };
0 голосов
/ 14 августа 2011

Как и предполагал RoccoC5, вы можете определить небольшой плагин, который будет извлекать ваш удаленный шаблон и затем добавлять его содержимое в тег script к заголовку:

(function ($) {
    $.loadTmpl = function (url, name) {
        return $.get(url).success(function (content){
            $("head").append($('<script/>', {
                id: name,
                type: 'text/template'
            }).html(content));
        });
    };
}(jQuery));

и используйте его с:

$.loadTmpl('hi.html', 'hi').done(function () {
    $('#hi').tmpl({name: 'Tom'}).appendTo('body');
});

или

$.when(
    $.loadTmpl('foo.html', 'foo'),
    $.loadTmpl('bar.html', 'bar'),
    ...
).done(function () {
    // All your templates are now loaded
});

Надеюсь, что это поможет.

...