Sto usando Backbone Marionettes CollectionView. Sto cercando di indicare che la raccolta si sta caricando, così sto usando il emptyView per visualizzare un loader.Marionetta backbone: using emptyView per il caricamento
Tuttavia questa è una cattiva logica, perché a volte le raccolte sono vuote e quindi diventa un loader danneggiato.
Ho provato ad utilizzare questo script, ma non ha funzionato: https://github.com/surevine/marionette-loadingview-plugin
Qualcuno ha una soluzione migliore? Ecco il mio codice corrente:
//loadingview
define(["marionette", "text!app/templates/loading.html"], function(Marionette, Template) {
"use strict";
return Backbone.Marionette.ItemView.extend({
template: Template
});
})
//collection
define(["marionette", "text!app/templates/events/collection.html", "app/collections/events", "app/views/events/item", 'app/views/loading'], function (Marionette, Template, Collection, Row, LoadingView) {
"use strict"
return Backbone.Marionette.CompositeView.extend({
template: Template,
itemView: Row,
itemViewContainer: "ul",
emptyView: LoadingView,
initialize: function() {
this.collection = new Collection()
return this.collection.fetch()
}
})
})
//item
define(["marionette", "text!app/templates/events/item.html"], function(Marionette, Template) {
"use strict";
return Backbone.Marionette.ItemView.extend({
template: Template,
tagName: "li"
})
})
Hm Mi piace molto questa soluzione, ma non penso collectionEvents: { 'richiesta' è corretto. la sincronizzazione viene chiamata, ma la richiesta no. – azz0r
Probabilmente puoi risolvere il problema chiamando il metodo 'fetch' DOPO il rendering della tua vista. Ad esempio: 'view = new View(); $ ('Body') aggiungere (view.render() el.).; view.collection.fetch() '. – gbsice
Sembra un po 'disordinato, coinvolge la manipolazione diretta di dom e tutto – azz0r