JQuery模板:异步模板加载?

时间:2011-02-19 14:02:22

标签: javascript jquery templates

我是否可以使用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 个答案:

答案 0 :(得分:1)

根据文档$(element).tmpl()获取匹配集中的第一个元素并呈现其内容,即:

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

结果只是一个没有span的文本节点。 相反:

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

您可以使用后一种语法,也可以在处理前将结果打包为空<div>$(<div>).append(result).tmpl(...)