backbone.js - navigate - marionette view
Usando Marionette.ItemView para vistas sin modelos? (2)
¿Es convencional usar Marionette.ItemView
para clases de vista que no tienen una propiedad de model
específica asociada a ellas?
Como Marionette.View
no está destinado a ser utilizado directamente, parece que un ItemView
tiene sentido como una clase de vista con convenientes valores predeterminados y enlaces.
O, ¿debería uno recurrir al uso de Backbone.View
? En caso afirmativo, ¿hay alguna forma de conectar Backbone.View
a la arquitectura de Marionette, recogida y recogida de basura?
¡Gracias por la aclaración!
ItemView se puede usar sin un modelo. Lo hago con bastante regularidad
Si necesita especificar datos para un ItemView, pero no tiene esos datos en un Backbone.Model, debe sobrescribir el método serializeData
:
MyView = Marionette.ItemView.extend({
serializeData: function(){
return {
my: "custom data"
};
}
});
la base Marionette.View no está destinada a ser utilizada directamente porque no proporciona una función de renderización por sí misma. Sin embargo, eso no significa que no puedas usarlo para crear tus propios tipos de vista base. Podría, por ejemplo, crear un tipo de vista para su aplicación que se ocupe de renderizar google maps o un widget de terceros u otra cosa que no necesite la representación general de Backbone.Model que tiene ItemView.
Me acabo de enterar de que puedes usar una templateHelper para esto, solo tira esto en tu declaración de ItemView:
templateHelpers: function() {
return {
message: this.message,
cssClass: this.cssClass
}
}
Y luego en tu plantilla:
<script type="text/html" id="notice-template">
<span class="<%= cssClass %>"><%= message %></span>
</script>
Y luego cuando inicias la vista:
var noticeView = new App.Views.Notice();
noticeView.message = "HELLO";
App.noticeRegion.show(noticeView);
¿Me interesaría tu opinión sobre este Derick?