2010-12-06 110 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