Шаблон JQuery: загрузка асинхронного шаблона? - PullRequest
1 голос
/ 19 февраля 2011

Могу ли я использовать шаблон jquery без необходимости иметь все шаблоны (text / x-jquery-tmpl) на странице, но загруженные по требованию через ajax?

Я пытаюсь с пользовательским тегом, но у меня нет желаемых результатов:

function loadTemplate(template, data){

                var html;

                $.ajax({
                    url: "/widgets/"+template,
                    async : false,
                    success: function(result){
                        html = $(result).tmpl(data).html();

                    }
                });


                return html;
            }

function extendTmpl() {


        $.extend(jQuery.tmpl.tag, {
            'atmpl': {
                _default: { $1: "null", $2: "null" },
                open: '_=_.concat(loadTemplate($1, $2));'
            },
        });

}

1 Ответ

1 голос
/ 19 февраля 2011

Согласно документации $ (element) .tmpl () берет первый элемент в соответствующем наборе и отображает его содержимое , т.е.:

$('<span>hello</span>').tmpl() // => "hello"

Результатом является просто текстовый узел без промежутка. На противоположном:

$.tmpl('<span>hello</span>') // => "<span>​hello​</span>​"

Вы можете использовать этот последний синтаксис или обернуть свой результат в пустой <div> перед обработкой: $(<div>).append(result).tmpl(...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...