Sí, se puede lograr esto (yo uso esto cada vez).
vamos a suponer que usted tiene sus plantillas en una carpeta template
y se llama, por ejemplo _productDetails.tmpl.html
en su página utiliza jQuery $.get()
para tirar de él y cargar en la plantilla, como:
var renderExternalTmpl = function(item) {
var file = '../templates/_' + item.name + '.tmpl.html';
$.when($.get(file))
.done(function(tmplData) {
$.templates({ tmpl: tmplData });
$(item.selector).html($.render.tmpl(item.data));
});
}
y se pasa un objeto bruja item
contendrá los 3 propiedades, como:
renderExternalTmpl({ name: 'productDetails', selector: '#items', data: {} })
Usted puede tener una buena utilidades clase para mantener todo esto:
var my = my || {};
my.utils = (function() {
var getPath = function(name) {
return '../templates/_' + name + '.tmpl.html';
},
renderExtTemplate = function(item) {
var file = getPath(item.name);
$.when($.get(file))
.done(function(tmplData) {
$.templates({ tmpl: tmplData });
$(item.selector).html($.render.tmpl(item.data));
});
};
return {
getPath: getPath,
renderExtTemplate: renderExtTemplate
};
});
y se puede llamar fácilmente my.utils.renderExtTemplate(item);
¿Es una buena idea para enviar una petición http cada vez que quiera hacer una plantilla? – Stefan
@Stefan Lo hago, solo uso 'cache: true' si desea que el navegador guarde en caché la plantilla para que no tenga que enviarla cada solicitud. – balexandre
¿Por qué simplemente no funciona el atributo 'src' del elemento' ')? Eso sería tan limpio, hermoso e intuitivo. –