2010-12-06 40 views
22

Acabo de empezar a usar el motor de plantillas de jQuery. Que se ve bastante bien hasta ahora. Sin embargo, me pregunto si es posible cargar plantillas desde un archivo externo de alguna manera. Imagina tener muchas plantillas. Esto podría estropear el código html y tampoco es almacenable en caché y debe descargarse en cada solicitud.carga jQuery-Plantillas desde un archivo externo?

Esperaba que hubiera una manera de definirlos todos en un archivo externo y luego cargarlos y almacenar las plantillas compiladas en localStorage.

¿Alguien tiene una idea de cómo cargarlos desde un archivo externo?

Respuesta

14

puede cargar esta plantilla con 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> 

Puede agregar ahora la lógica localStorage o una matriz para las plantillas cargadas si desea cargar cualquier plantilla de una sola vez.

+0

1 para la inclusión de ejemplo sobre el uso de .template() para compilar y $ .tmpl() para rendir. Esto permite repetir llamadas a $ .tmpl() más tarde, sin necesidad de buscar o compilar. – justis

+0

Da: TypeError: $ .template no es una función – zygimantus

0

Hace poco escribí una biblioteca javascript para ayudar con esto:

https://www.github.com/stevenmhunt/tmpl.loader

Puede añadir jsRender o cualquier otro tipo de archivos de plantilla utilizando la etiqueta <link> y se registrará automáticamente.

+0

El enlace está roto. :( – Luke

+0

Disculpa por eso, cambié mi nombre de github hace años. El enlace está arreglado ahora. –

1

escribí lib Litle como plugin de jQuery para Ajax representación HTML en aparecer bloque con indexDB almacenamiento en caché en el navegador jQuery HTML Template Loader

Cuestiones relacionadas