Używam Marionetki już od tygodnia i to naprawdę ułatwiło mi życie!Ładowanie widok ładowania podczas pobierania lub pobrania modelu
W tej chwili potrzebuję być w stanie powiadomić użytkownika, gdy kolekcja lub model jest pobierane, ponieważ niektóre widoki zajmują znaczną ilość czasu do renderowania/pobierania. Aby dać przykład Zrobiłem mały makieta:
Gdy użytkownik kliknie na kategorii, zbiór wszystkich pozycji w tej kategorii muszą zostać załadowane. Zanim kolekcja zostanie pobrana, chcę wyświetlić widok ładujący widoczny na obrazku (widok 1). Jakie byłoby eleganckie rozwiązanie do wdrożenia tego. Znalazłem następujący wpis, w którym użytkownik włącza wyzwalacz pobierania: http://tbranyen.com/post/how-to-indicate-backbone-fetch-progress. To wydaje się działać, ale nie bardzo, jak chciałem. To jest coś wymyśliłem:
var ItemThumbCollectionView = Backbone.Marionette.CollectionView.extend({
collection: new ItemsCollection(userId),
itemView: ItemThumbView,
initialize: function(){
this.collection.on("fetch", function() {
//show loading view
}, this);
this.collection.on("reset", function() {
//show final view
}, this);
this.collection.fetch();
Backbone.history.navigate('user/'+identifier);
this.bindTo(this.collection, "reset", this.render, this)
}
});
Byłoby miło, ale jeśli mogę mieć opcjonalny atrybut o nazwie „LoadItemView” na przykład. Które zastąpiłoby itemView podczas pobierania. Czy uważasz, że jest to dobra praktyka?
Użyj collection.on ("request") zamiast collection.on ("pobierz"). I collection.fetch ({reset: true}) zamiast collection.fetch(). ;) –