backbone.js - Utilice Handlebars.js con Backbone.Marionette
(4)
¿Es posible utilizar Handlebars.js con la extensión Backbone.Marionette sin volver a implementar la función de renderización Vistas? Parece que Marionette confía en la convención de que usas Backbone.js con el motor de plantillas que subraya. Pero realmente me gusta el enfoque del manillar, así que estoy preguntando si puedo las herramientas de alto nivel de Marionette con manubrios.
@brettjonesdev es correcto, pero una otra adición aquí que encontré que funcionó bien fue:
var MyView = Backbone.Marionette.ItemView.extend({
template: Handlebars.compile($("#assign-products-main-view").html()),
model: new Backbone.Model({name: "Steve"})
});
Esto ayuda al buscar el DOM.
Las dos respuestas actuales no explotan el almacenamiento en caché. Use esta idea en su lugar.
También podemos hacer uso de plantillas precompiladas aquí.
var MyView = Backbone.Marionette.ItemView.extend({
template: Handlebars.templates[''filename''],
model: new Backbone.Model({name: "Steve"})
});
De esta forma podemos eliminar la función de compilación de Marionette.
Una forma sencilla de usar Handlebars con Marionette es simplemente definir la template
en cada Vista como una función de plantilla de Handlebars precompilada. Por ejemplo:
var MyView = Backbone.Marionette.ItemView.extend({
template: Handlebars.compile("Hello, {{name}}"),
model: new Backbone.Model({name: "Steve"})
});
El Renderer
defecto de Marionette detectará que el atributo de template
es una función, y lo llamará en consecuencia.
Consulte también la documentación oficial sobre este caso: https://github.com/marionettejs/backbone.marionette/wiki/Using-handlebars-templates-with-marionette
y otra Q / A con requirejs + Marionette + Handlebars precompiladas: Uso de plantillas de manillar precompiladas con Marionette