2010-12-06 107 views
22

我刚开始使用jQuery的模板引擎。目前看起来相当不错。但我想知道是否有可能以某种方式从外部文件加载模板。想象一下有大量的模板。这会弄乱html代码,并且也不可缓存,并且必须在每个请求中下载。从外部文件加载jQuery模板?

我希望有一种方法可以在外部文件中定义它们,然后加载它们并将编译后的模板存储到localStorage中。

有没有人有一个想法如何从外部文件加载它们?

回答

14

您可以使用ajax加载此模板。

<script> 
    var movies = [ 
    { Name: "The Red Violin", ReleaseYear: "1998", Director: "François Girard" }, 
    { Name: "Eyes Wide Shut", ReleaseYear: "1999", Director: "Stanley Kubrick" }, 
    { Name: "The Inheritance", ReleaseYear: "1976", Director: "Mauro Bolognini" } 
    ]; 

    $.get("templates/movieTemplate.html", function(data, textStatus, XMLHttpRequest){ 
    var markup = data; //"<tr><td colspan='2'>${Name}</td><td>Released: ${ReleaseYear}</td><td>Director: ${Director}</td></tr>" 

    /* Compile markup string as a named template */ 
    $.template("movieTemplate", markup); 

    /* Render the named template */ 
    $.tmpl("movieTemplate", movies).appendTo("#movieList"); 
    }); 
</script> 

如果您只想加载任何模板一次,您现在可以为加载的模板添加localstorage逻辑或数组。

+0

+1与INDEXDB缓存出现块包括使用.template例如HTML()来编译和$ .tmpl()来呈现。这允许稍后重复调用$ .tmpl(),而不需要获取或编译。 – justis 2011-09-02 17:33:41

+0

它给出:TypeError:$。模板不是函数 – zygimantus 2017-04-20 10:37:16