software navigate collection backbone backbone.js marionette

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?