¿Es posible cargar una plantilla de manillar a través de AJAX?
-
13-11-2019 - |
Pregunta
Me gustaría cargar plantillas adicionales sobre la marcha.¿Es posible?
Solución
Puede registrar nuevas plantillas en Ember.TEMPLATES
.Luego estarán disponibles para las vistas.
un extracto de mi código (Handler de JQUERY AJAX):
success: function(data) {
$(data).filter('script[type="text/x-handlebars"]').each(function() {
templateName = $(this).attr('data-template-name');
Ember.TEMPLATES[templateName] = Ember.Handlebars.compile($(this).html());
});
}
Eso es.
Otros consejos
Estaba buscando lo mismo y estoy a punto de jugar con el fragmento de abajo
Crédito: Borismus en GitHub https://gist.github.com/2165681
<script>
/*
* Loads a handlebars.js template at a given URL. Takes an optional name, in which case,
* the template is added and is reference-able via templateName.
*/
function loadTemplate(url, name, callback) {
var contents = $.get(url, function(templateText) {
var compiledTemplate = Ember.Handlebars.compile(templateText);
if (name) {
Ember.TEMPLATES[name] = compiledTemplate
} else {
Ember.View.create({ template: compiledTemplate }).append();
}
if (callback) {
callback();
}
});
}
</script>
Estoy usando RequitJs junto con el complemento de texto para cargar plantillas de manillar dinámicamente.
R.js Optimizer compilará la plantilla de HandlerBar a un archivo de texto, que se puede cargar fácilmente utilizando RedesJS o incluso AJAX
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow